【问题标题】:Latent semantic analysis in finding topics寻找主题的潜在语义分析
【发布时间】:2014-01-29 18:57:53
【问题描述】:

我正在学习潜在语义分析 (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"

【问题讨论】:

    标签: algorithm svd gensim


    【解决方案1】:

    您可以获得 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

    【讨论】:

    • 感谢 gensim 的开发者 Radim。让我重新表述我的问题:系数 0.425、0.299 等到底是什么意思?你如何根据 U、S、V 计算它们?
    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 2019-02-11
    • 2011-10-26
    • 1970-01-01
    • 2014-10-08
    • 2017-08-05
    • 1970-01-01
    • 2019-01-03
    相关资源
    最近更新 更多