2014-01-29 48 views
2

我正在學習潛在語義分析(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" 

回答

3

你可以得到U,S和您的SVD分解第五矩陣: 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

+0

感謝拉迪姆,gensim的開發商。讓我重述一下我的問題:係數0.425,0.299等的意義究竟是什麼?你如何計算他們從U,S,V? –