问题标签 [lsa]

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 投票
0 回答
614 浏览

r - 如何在使用 R 的文本分析中使用 LSA 进行降维

我是数据科学的初学者,我正在从事一个带有推文的文本分析/情感分析项目。我一直在尝试做的是对我的推文训练集进行一些降维,并将训练集输入到 NaiveBayes 学习器中,并使用学习到的 NaiveBayes 来预测测试推文集上的情绪。

我一直在按照本文中的步骤进行操作:

http://www.analyticskhoj.com/data-mining/text-analytics-part-iv-cluster-analysis-on-terms-and-documents-using-r/

对于像我这样的初学者来说,他们的解释有点太简短了。

我已经使用 lsa() 创建了一个在 RStudio 中标记为“Large LSAspace(3 个元素)”的东西。并按照他们的示例,我创建了另外 3 个数据框:

当我查看lsa.train.tk数据时,它看起来像这样(lsa.train.dk看起来与这个矩阵非常相似):

在此处输入图像描述

我的lsa.train.sk如下所示:

在此处输入图像描述

我的问题是,我如何解释这些信息?我如何利用这些信息来创建可以输入 NaiveBayes 学习者的东西?我尝试将 lsa.train.sk 用于 NaiveBayes 学习者,但我想不出任何好的解释来证明我的尝试是正确的。任何帮助将非常感激!

编辑: 到目前为止我所做的:

  1. 把所有东西都变成术语文档矩阵
  2. 将矩阵传递给 NaiveBayes 学习器
  3. 使用学习算法进行预测

我的问题是:

  1. 准确率只有 50%……我意识到它将所有内容都标记为积极情绪(所以如果我的测试集只包含消极情绪推文,我可以获得 1% 的准确率)。

  2. 当前代码不可扩展。由于它使用大型矩阵,我最多只能处理 3.5k 行数据。不仅如此,我的电脑会崩溃。因此我想做一个降维,以便我可以处理更多数据(例如 10k 或 100k 行推文)

0 投票
1 回答
1730 浏览

scikit-learn - Scikit-learn TruncatedSVD 文档

我打算在sklearn.decomposition.TruncatedSVDKaggle 比赛中使用 LSA,我知道 SVD 和 LSA 背后的数学,但我对 scikit-learn 的用户指南感到困惑,因此我不确定如何实际应用 TruncatedSVD

doc中,它指出:

这次手术后,

在此处输入图像描述

U_k * transpose(S_k)是具有特征的转换训练集kn_components在 API 中调用)

为什么是这样?我想在SVD之后,X此时X_k应该是U_k * S_k * transpose(V_k)

然后它说,

为了也转换一个测试集X,我们将它乘以V_kX' = X * V_k

这是什么意思?

0 投票
1 回答
554 浏览

r - R:如何将测试数据映射到由训练数据创建的 lsa 空间

我正在尝试使用 LSA 进行文本分析。我在 StackOverflow 上阅读了许多其他关于 LSA 的帖子,但我还没有找到与我的类似的帖子。如果你知道有一个和我类似的,请把我重定向到它!非常感激!

这是我创建的示例数据的可重现代码:

创建样本数据训练和测试集

训练数据集的预处理

为训练集创建术语文档矩阵

转换成矩阵(供以后使用)

使用训练数据创建 lsa 空间

设置维度#(我在这里随机选择了一个,因为数据太小,无法创建肘形)

将训练矩阵投影到新的 LSA 空间中

将以上投影数据转换为矩阵

训练随机森林模型(不知何故,这个步骤不再适用于这个小样本数据......但没关系,在这个问题上不会是一个大问题;但是,如果你也可以帮助我解决这个错误,那'太棒了!我尝试用谷歌搜索这个错误,但它只是没有修复......)

测试数据集的预处理

基本上我在重复我对训练数据集所做的一切,除了我没有使用测试集来创建自己的 LSA 空间

为测试集创建术语文档矩阵

转换成矩阵(供以后使用)

将测试矩阵投影到训练有素的 LSA 空间中(这里是问题所在)

但我会收到一个错误: crossprod 中的错误(docvecs,LSAspace$tk):不符合要求的参数

我没有找到有关此错误的任何有用的谷歌搜索结果......(谷歌QQ只有一个搜索结果页面)非常感谢任何帮助!谢谢!

0 投票
0 回答
151 浏览

r - R:如何以并行处理格式执行 lsa()

我正在尝试对推文进行一些文本分析,并尝试将 LSA() 用于 DR。但是,似乎计算 lsa 空间非常消耗内存。我最多只能处理 2.3k 条推文,否则我的电脑会死机。

当我通过在线资源研究并行处理时,我了解到,即使我的计算机是 4 核,我也只会使用其中的 1 个,因为这是 R 中的默认设置。我也在这里阅读了这篇文章,非常有帮助,但似乎只能进行并行处理:

  1. 关于可在 apply() 系列中使用的函数
  2. 替换 for 循环

我正在尝试对 lsa() 使用并行处理。这是我的一行代码:

其中tdm.train是一个 TermDocumentMatrix,其中术语为行,文档为列。

我的问题是:

如何更改 lsa() 的这行代码,以便它以并行格式而不是顺序格式处理?这样它将使用 n 个内核而不是仅 1 个内核,其中 n 是用户(我)定义的内核数。

0 投票
1 回答
12077 浏览

python - 如何处理余弦相似度的负值

我根据术语计算了我的文档的 tf-idf。然后,我应用 LSA 来降低术语的维数。'similarity_dist' 包含负值(见下表)。如何计算范围为 0-1 的余弦距离?

在此处输入图像描述

0 投票
2 回答
7950 浏览

python - 在循环中继续不正确

我有 python 2.7,这是我的代码,当我运行它时,我收到这个错误:'continue' not proper in loop。

我知道'继续'应该在循环内,但我在里面使用它if,那我该怎么办?

0 投票
2 回答
1172 浏览

python - Python 2:AttributeError:“list”对象没有属性“split”

这是我的 LSA 程序,在这个函数中,我想标记我所有的文本,然后将其转换为词干。我正在尝试将它们集成到词干提取程序中,然后我得到了这个:对于titles.split(“”)中的单词:AttributeError:'list'对象没有属性'split'

此代码 lsa:

这就是我想要整合的:

0 投票
1 回答
658 浏览

python - 如何从 LSA 中获取相似度

我正在研究潜在语义分析,我正在尝试从 2 个文档中获取相似性。我在 Python 上运行我的潜在语义分析代码,当我运行它时,我得到:

我如何从这些数字中找到相似之处?

0 投票
1 回答
1464 浏览

python - 如何使用潜在语义分析 (lsa) 对主题下的文档进行聚类

我一直在研究潜在语义分析(lsa)并应用了这个例子:https ://radimrehurek.com/gensim/tut2.html

它包括在主题下聚类的术语,但找不到任何我们如何在主题下聚类文档。

在那个例子中,它说“看起来,根据 LSI,“trees”、“graph”和“minors”都是相关的词(并且对第一个主题的方向贡献最大),而第二个主题实际上关注本身与所有其他词。正如预期的那样,前五个文档与第二个主题的相关性更强,而其余四个文档与第一个主题相关。

我们如何将这五个文档与 Python 代码关联到相关主题?

你可以在下面找到我的 python 代码。我将不胜感激任何帮助。

0 投票
0 回答
267 浏览

java - 覆盖与 Lucene 的相似性并改用 LSA+SVD

我正在研究一个Lucene用于搜索和返回匹配项的现有项目。它不使用任何自定义分析器或任何外部算法。文档很小,行数不超过 50 个单词,因此我知道LSA AND SVD短文本比语料库文档效果更好(通常 tf-idf 可以很好地处理每个文档中的长文本),我想将LSA And SVD其作为相似度度量搜索匹配的非精确词。我的问题是:

  1. 我需要custom analyzer吗?我搜索了它,但我发现自定义分析器主要用于分析文档,而不是真正应用相似度度量。

  2. 或者我是否需要像此链接https://lucene.apache.org/core/3_5_0/api/core/org/apache/lucene/search/package-summary.html#changeSimilarity一样更改相似性?

如果是,任何使用 LSA 作为自定义相似度的示例?我对 java 和 lucene 很陌生,我不知道如何开始,任何帮助将不胜感激

我的文档数以百万计,但每个文档都很少。