问题标签 [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.
r - 如何在使用 R 的文本分析中使用 LSA 进行降维
我是数据科学的初学者,我正在从事一个带有推文的文本分析/情感分析项目。我一直在尝试做的是对我的推文训练集进行一些降维,并将训练集输入到 NaiveBayes 学习器中,并使用学习到的 NaiveBayes 来预测测试推文集上的情绪。
我一直在按照本文中的步骤进行操作:
对于像我这样的初学者来说,他们的解释有点太简短了。
我已经使用 lsa() 创建了一个在 RStudio 中标记为“Large LSAspace(3 个元素)”的东西。并按照他们的示例,我创建了另外 3 个数据框:
当我查看lsa.train.tk数据时,它看起来像这样(lsa.train.dk看起来与这个矩阵非常相似):
我的lsa.train.sk如下所示:
我的问题是,我如何解释这些信息?我如何利用这些信息来创建可以输入 NaiveBayes 学习者的东西?我尝试将 lsa.train.sk 用于 NaiveBayes 学习者,但我想不出任何好的解释来证明我的尝试是正确的。任何帮助将非常感激!
编辑: 到目前为止我所做的:
- 把所有东西都变成术语文档矩阵
- 将矩阵传递给 NaiveBayes 学习器
- 使用学习算法进行预测
我的问题是:
准确率只有 50%……我意识到它将所有内容都标记为积极情绪(所以如果我的测试集只包含消极情绪推文,我可以获得 1% 的准确率)。
当前代码不可扩展。由于它使用大型矩阵,我最多只能处理 3.5k 行数据。不仅如此,我的电脑会崩溃。因此我想做一个降维,以便我可以处理更多数据(例如 10k 或 100k 行推文)
scikit-learn - Scikit-learn TruncatedSVD 文档
我打算在sklearn.decomposition.TruncatedSVD
Kaggle 比赛中使用 LSA,我知道 SVD 和 LSA 背后的数学,但我对 scikit-learn 的用户指南感到困惑,因此我不确定如何实际应用
TruncatedSVD
。
在doc中,它指出:
这次手术后,
U_k * transpose(S_k)
是具有特征的转换训练集k
(n_components
在 API 中调用)
为什么是这样?我想在SVD之后,X
此时X_k
应该是U_k * S_k * transpose(V_k)
?
然后它说,
为了也转换一个测试集
X
,我们将它乘以V_k
:X' = X * V_k
这是什么意思?
r - R:如何将测试数据映射到由训练数据创建的 lsa 空间
我正在尝试使用 LSA 进行文本分析。我在 StackOverflow 上阅读了许多其他关于 LSA 的帖子,但我还没有找到与我的类似的帖子。如果你知道有一个和我类似的,请把我重定向到它!非常感激!
这是我创建的示例数据的可重现代码:
创建样本数据训练和测试集
训练数据集的预处理
为训练集创建术语文档矩阵
转换成矩阵(供以后使用)
使用训练数据创建 lsa 空间
设置维度#(我在这里随机选择了一个,因为数据太小,无法创建肘形)
将训练矩阵投影到新的 LSA 空间中
将以上投影数据转换为矩阵
训练随机森林模型(不知何故,这个步骤不再适用于这个小样本数据......但没关系,在这个问题上不会是一个大问题;但是,如果你也可以帮助我解决这个错误,那'太棒了!我尝试用谷歌搜索这个错误,但它只是没有修复......)
测试数据集的预处理
基本上我在重复我对训练数据集所做的一切,除了我没有使用测试集来创建自己的 LSA 空间
为测试集创建术语文档矩阵
转换成矩阵(供以后使用)
将测试矩阵投影到训练有素的 LSA 空间中(这里是问题所在)
但我会收到一个错误: crossprod 中的错误(docvecs,LSAspace$tk):不符合要求的参数
我没有找到有关此错误的任何有用的谷歌搜索结果......(谷歌QQ只有一个搜索结果页面)非常感谢任何帮助!谢谢!
r - R:如何以并行处理格式执行 lsa()
我正在尝试对推文进行一些文本分析,并尝试将 LSA() 用于 DR。但是,似乎计算 lsa 空间非常消耗内存。我最多只能处理 2.3k 条推文,否则我的电脑会死机。
当我通过在线资源研究并行处理时,我了解到,即使我的计算机是 4 核,我也只会使用其中的 1 个,因为这是 R 中的默认设置。我也在这里阅读了这篇文章,非常有帮助,但似乎只能进行并行处理:
- 关于可在 apply() 系列中使用的函数
- 替换 for 循环
我正在尝试对 lsa() 使用并行处理。这是我的一行代码:
其中tdm.train是一个 TermDocumentMatrix,其中术语为行,文档为列。
我的问题是:
如何更改 lsa() 的这行代码,以便它以并行格式而不是顺序格式处理?这样它将使用 n 个内核而不是仅 1 个内核,其中 n 是用户(我)定义的内核数。
python - 在循环中继续不正确
我有 python 2.7,这是我的代码,当我运行它时,我收到这个错误:'continue' not proper in loop。
我知道'继续'应该在循环内,但我在里面使用它if
,那我该怎么办?
python - Python 2:AttributeError:“list”对象没有属性“split”
这是我的 LSA 程序,在这个函数中,我想标记我所有的文本,然后将其转换为词干。我正在尝试将它们集成到词干提取程序中,然后我得到了这个:对于titles.split(“”)中的单词:AttributeError:'list'对象没有属性'split'
此代码 lsa:
这就是我想要整合的:
python - 如何从 LSA 中获取相似度
我正在研究潜在语义分析,我正在尝试从 2 个文档中获取相似性。我在 Python 上运行我的潜在语义分析代码,当我运行它时,我得到:
我如何从这些数字中找到相似之处?
python - 如何使用潜在语义分析 (lsa) 对主题下的文档进行聚类
我一直在研究潜在语义分析(lsa)并应用了这个例子:https ://radimrehurek.com/gensim/tut2.html
它包括在主题下聚类的术语,但找不到任何我们如何在主题下聚类文档。
在那个例子中,它说“看起来,根据 LSI,“trees”、“graph”和“minors”都是相关的词(并且对第一个主题的方向贡献最大),而第二个主题实际上关注本身与所有其他词。正如预期的那样,前五个文档与第二个主题的相关性更强,而其余四个文档与第一个主题相关。
我们如何将这五个文档与 Python 代码关联到相关主题?
你可以在下面找到我的 python 代码。我将不胜感激任何帮助。
java - 覆盖与 Lucene 的相似性并改用 LSA+SVD
我正在研究一个Lucene
用于搜索和返回匹配项的现有项目。它不使用任何自定义分析器或任何外部算法。文档很小,行数不超过 50 个单词,因此我知道LSA AND SVD
短文本比语料库文档效果更好(通常 tf-idf 可以很好地处理每个文档中的长文本),我想将LSA And SVD
其作为相似度度量搜索匹配的非精确词。我的问题是:
我需要
custom analyzer
吗?我搜索了它,但我发现自定义分析器主要用于分析文档,而不是真正应用相似度度量。或者我是否需要像此链接https://lucene.apache.org/core/3_5_0/api/core/org/apache/lucene/search/package-summary.html#changeSimilarity一样更改相似性?
如果是,任何使用 LSA 作为自定义相似度的示例?我对 java 和 lucene 很陌生,我不知道如何开始,任何帮助将不胜感激
我的文档数以百万计,但每个文档都很少。