问题标签 [latent-semantic-indexing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
185 浏览

cluster-analysis - 为潜在语义分析选择合适的聚类方法

我想对一些文本文档进行聚类以找到具有相同概念的文档。我已经使用潜在语义分析 (LSA) 完成了语义相似性,但我混淆了我应该为我的目的选择哪种聚类方法。谢谢

0 投票
1 回答
1546 浏览

python - Gensim: ValueError: failed to create intent(cache|hide)|optional array-- 必须已定义维度但得到 (0,)

我正在尝试模拟某些文档的流式传输,并在流式传输的其他文档上更新 LSI。我发现这个错误:

流文档和更新 LSI 模型的代码:

语料库每次迭代都会获得一个新的 new_vec。不同迭代的每个产量的 new_vec:

错误出现在第一次迭代中(预期 new_vec 中的第一行)。其余的是 new_vec 的预期输出。

0 投票
1 回答
1132 浏览

python - scikit-learn - 我应该用 TF 还是 TF-IDF 拟合模型?

我试图找出在 sklearn(Python)上拟合不同概率模型(如潜在狄利克雷分配、非负矩阵分解等)的最佳方法。

查看 sklearn 文档中的示例,我想知道为什么 LDA 模型适合 TF 数组,而 NMF 模型适合 TF-IDF 数组。这种选择有确切的理由吗?

这是示例:http ://scikit-learn.org/stable/auto_examples/applications/topics_extraction_with_nmf_lda.html#sphx-glr-auto-examples-applications-topics-extraction-with-nmf-lda-py

此外,任何关于如何找到适合我的模型的最佳参数(迭代次数、主题数......)的提示都被广泛接受。

先感谢您。

0 投票
1 回答
618 浏览

python - gensim 生成 LSI 模型导致“Python 已停止工作”

因此,我正在尝试使用 gensim 来生成 LSI 模型以及按照教程的 corpus_lsi 。

我从我自己生成的语料库和字典开始。文档列表太小(9行=9文档),是gensim教程中提供的示例列表

但是,pythos 在到达生成 LSI_model 的行时就会崩溃。您可以在下面看到我的代码以及生成的输出

代码

输出

打印“生成 LSI 模型”后崩溃

有什么建议么 ?

我尝试过的其他事情

  • 将 python 版本更改为 python 2.6
  • 删除 gensim 并从 github 重新安装(而不是 conda)
0 投票
1 回答
685 浏览

nlp - 简单的二进制文本分类

我寻求最有效和最简单的方法来将 80 万多篇学术文章分类为与定义的概念空间相关的 (1) 或不相关的 (0)(这里:与工作相关的学习)。

数据为:标题和摘要(平均=1300 个字符)

可以使用或什至组合任何方法,包括监督机器学习和/或通过建立产生某些阈值以供包含的特征等。

方法可以利用描述概念空间的关键术语,尽管单独的简单频率计数太不可靠。潜在的途径可能涉及潜在语义分析、n-gram、..

为多达 1% 的语料库生成训练数据可能是现实的,尽管这已经意味着手动编码 8,000 篇文章(1=相关,0=不相关),这是否足够?

非常感谢具体的想法和一些简短的推理,因此我可以就如何进行做出明智的决定。非常感谢!

0 投票
1 回答
527 浏览

python - 试图理解潜在语义索引(LSI)

我正在学习奇异值分解,出于什么目的我可以使用这个概念,我正在阅读的书提到 SVD 用于潜在语义索引。我读了几篇关于 LSI 的文章,似乎 LSI 主要用于搜索引擎和类似的应用程序。我想将 LSI 用于我正在从事的小型数据分析项目,但我不确定它是否对我的应用程序有意义。这是我正在使用的。

我有一个大约 20000 款游戏的列表,其中 2 个属性是游戏类型和游戏发布平台。我想使用 LSI 来获取有关平台和流派属性的一些信息。

所以起初我创建了一个共现矩阵,其中行代表 24 个不同的流派,列代表 22 个不同的平台。然后我对共现矩阵进行了 SVD 分解,提取了 U 和 V 的前两列,并为 U 和 V 绘制了一个二维图。该图如下所示。

在此处输入图像描述

所以我的问题是,这是否可以被认为是潜在语义索引的有意义的使用,以及我如何从该图中进行解释?例如,我们看到动作类型和平台 PC 与所有其他变量相距甚远,这是否特别告诉我们有关该类型和平台的任何信息?

谢谢你。

0 投票
0 回答
2080 浏览

nlp - 用于文本挖掘主题分析的 SVD 解释

背景

我正在通过从头开始构建自己的文本挖掘工具包来学习文本挖掘——这是最好的学习方式!

SVD

奇异值分解通常被认为是一种很好的方法:

  • 在 2d/3d 中可视化高维数据(word-document 矩阵)
  • 通过降维提取关键主题

我已经花了大约一个月的时间来学习 SVD .. 我必须承认很多在线教程、论文、大学讲座幻灯片……甚至是正确的印刷教科书都不是那么容易消化的。

到目前为止,这是我的理解:SVD 揭秘(博客)

我想我已经理解了以下内容:

  • 任何(实)矩阵都可以使用 SVD 唯一地分解为 3 个相乘矩阵,A=U⋅S⋅V^T
  • S 是奇异值的对角矩阵,按数量级降序排列
  • U 和 V^T 是正交向量的矩阵

我知道我们可以通过将 S 的较小元素归零并重建原始数据来过滤掉不太重要的信息来减少维度。如果我想将维度减少到 2,我只会保留对角线 S 的最左上角的 2 个元素来形成一个新的矩阵 S'

我的问题

为了查看投影到降维空间上的文档,我看到人们使用 S'⋅V^T。为什么?S'⋅V^T的解释是什么?

同样,为了查看主题,我看到人们使用 U⋅S'。为什么?对此有何解释?

我有限的学校数学告诉我应该将这些视为转换(旋转,比例)......但这也无助于澄清它。

** 更新 ** 我在SVD demystified (blog)上的博客解释中添加了更新,这反映了我查看的一本教科书的基本原理,以解释为什么 S'.V^T 是文档视图,以及为什么美国' 是一个单词视图。还是不太相信……

0 投票
1 回答
380 浏览

gensim - 使用 gensim 进行潜在语义索引

为了使用 gensim 的潜在语义索引方法,我想从一个小的“classique”示例开始,例如:

我的问题是:如何获得语料库迭代器'wiki_en_tfidf.mm'?我必须从某个地方下载它吗?我在互联网上搜索过,但没有找到任何东西。请帮忙 ?

0 投票
1 回答
286 浏览

r - 如何将潜在语义分析中的特征作为自变量合并到预测模型中

我正在尝试使用 R 中的文本数据运行逻辑回归。我已经建立了一个术语文档矩阵和一个相应的潜在语义空间。据我了解,LSA 用于从“术语”中推导出“概念”,这有助于降维。这是我的代码:

这提供了 V1、V2、V3.... V21 等功能。是否可以在我的逻辑回归中使用这些作为自变量?如果是这样,我该怎么做?

0 投票
1 回答
607 浏览

python-2.7 - 运行 gensim 分布式 LSI 时,AttributeError 模块 'Pyro4' 没有属性 'expose'

所以我试图从 gensim 为分布式 LSI 运行演示(你可以在这里找到它)但是每当我运行代码时,我都会收到错误

AttributeError: module 'Pyro4' has no attribute 'expose'

我在 stackoverflow 上检查了类似的问题,通常它们是由于滥用库引起的。

但是我没有直接使用 Pyro4,我使用的是 gensim 引入的分布式 LSI。所以我这边没有犯错的余地(或者我相信)

我的代码非常简单,您可以在下面找到它