algorithm - 寻找主题时的潜在语义分析

标签 algorithm svd gensim

我正在学习潜在语义分析(LSA),并且能够构建术语文档矩阵并找到其 SVD 分解。如何从分解中获取主题?

例如,在 gensim 中:

topic #0(332.762): 0.425*"utc" + 0.299*"talk" + 0.293*"page" + 0.226*"article" + 0.224*"delete" + 0.216*"discussion" + 0.205*"deletion" + 0.198*"should" + 0.146*"debate" + 0.132*"be"
topic #1(201.852): 0.282*"link" + 0.209*"he" + 0.145*"com" + 0.139*"his" + -0.137*"page" + -0.118*"delete" + 0.114*"blacklist" + -0.108*"deletion" + -0.105*"discussion" + 0.100*"diff"
topic #2(191.991): -0.565*"link" + -0.241*"com" + -0.238*"blacklist" + -0.202*"diff" + -0.193*"additions" + -0.182*"users" + -0.158*"coibot" + -0.136*"user" + 0.133*"he" + -0.130*"resolves"

最佳答案

您可以获得 SVD 分解的 U、S 和 V 矩阵: https://github.com/piskvorky/gensim/wiki/Recipes-&-FAQ#wiki-q4-how-do-you-output-the-u-s-vt-matrices-of-lsi

编辑回答评论中的问题:

打印的主题只是来自矩阵 U 的向量(=左奇异向量),标准化为单位长度。

也许教程位于http://radimrehurek.com/gensim/tut2.html#transforming-vectors可能有帮助。

实际打印的是对该特定主题贡献最大的前 N ​​个单词(默认=打印前 10 个单词)。

您可以在这里看到这些主题计算的确切方式,它相当简单: https://github.com/piskvorky/gensim/blob/0.8.9/gensim/models/lsimodel.py#L447

关于algorithm - 寻找主题时的潜在语义分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21440132/

相关文章:

c++ - 如何在 map 中使用 tolower 和 lambda 函数? C++

algorithm - 哈希值的算术运算

apache-spark - 大型稀疏矩阵,带 Spark 的 svd,python

matlab - 有效地得到零空间或一维空间,这是它的最佳近似

python - 在 Windows 7 中安装 gensim

python - 如何在确保向前兼容性的同时保存 Gensim 模型?

doc2vec的Python简单实现?

asp.net - 如何在 node.js 中检查 ASP.NET 密码哈希

python - 保持相等值分离的排序算法

java - 快速准确的稀疏 svd 库?