2012-03-07 99 views
4

我已經學習了幾個星期的LDA和Topic模型。但由於我的數學能力很差,我無法完全理解它的內部算法。我使用了GibbsLDA實現,輸入了很多文檔,並設置了題目數爲100,我得到了一個名爲「final.theta」的文件,其中存儲了每個文檔中每個主題的主題比例。這個結果是好的,我可以使用主題比例來做很多其他事情。 但是,當我嘗試在LDA上Blei的C語言實現時,我只有一個名爲final.gamma的文件,但我不知道如何將此文件轉換爲主題比例樣式。 任何人都可以幫助我。 我瞭解到,LDA模型有很多改進的版本(如CTM,HLDA),如果我能找到類似於LDA的主題模型,我的意思是當我輸入大量文檔時,它可以直接輸出主題比例文檔。 非常感謝!LDA和主題模型

+0

+1爲LDA參考 - 這是一個新的想法給我。謝謝。 – duffymo 2012-03-07 13:11:59

回答

1

我覺得跟Blei執行的問題是,你正在運行做變推論:

$ LDA INF [參數...]

當你想要做的話題估計,與:

$ LDA EST [參數...]

一旦運行,就會出現無論是在當前目錄或由可選的最後一個參數指定的目錄中的文件「final.beta」。然後運行包含在tar中的python腳本「topics.py」。這裏的自述:http://www.cs.princeton.edu/~blei/lda-c/readme.txt描述了這一切,尤其是部分B和D.

(如果這仍然沒有任何意義,讓我知道)

至於改進,如CTM等:我不知道知道關於HLDA的任何事情,但我過去曾使用過LDA和CTM,我可以說這兩者都不比其他更好 - 這是對不同數據更好的一種情況。 CTM假定文檔是相關的,並且只要它是真實的,就使用該假設來改進結果。

希望這會有所幫助!

+0

謝謝你的幫助,但我想要的是如何將結果文件轉換爲話題比例?我的意思是theta。 – ShenYi 2012-03-12 03:00:08

+0

我認爲,這個答案是誤導性的。雖然OP詢問主題比例(每個主題在文檔中出現的次數 - theta),但答案是關於主題(分佈在單詞 - beta中)。 – rarry 2018-01-29 14:01:07

0

要獲得E [θ]只是規範化每一行內的gammas。它來自Dirichlet分佈的性質。