2015-11-17 300 views
1

我想嘗試Blie .et.al的LDA -c代碼。因爲它在這linkTopic Modling:如何在C語言中使用LDA數據?

我編譯了代碼,當我在終端中運行./lda時,顯示以下結果。

usage : lda est [initial alpha] [k] [settings] [data] [random/seeded/manual=filename/*] [directory] 
     lda inf [settings] [model] [data] [name] 

這意味着,它已被正確編譯。

但是,儘管讀取了README.txt文件,但我無法成功運行LDA代碼。 要麼是它說分段錯誤(核心轉儲)死亡

我錯過了什麼?如何在他們提供的示例數據上使用它?

我已經讀過問題here問題的堆棧溢出答案,但它沒有用,因爲我不知道默認值。

上傳:我是一個開始。

回答

2

您是否正在使用ap.txt而不是ap.dat? lda-c不會將原始句子或數據標記爲輸入;每個文檔需要一系列的文字信息。當ap.dat有一條類似 186 0:1 6144:1 3586:2 ...的行時,表示對應的文檔有186個不同的單詞,單詞0出現一次,單詞6144出現一次,單詞3586出現兩次,依此類推。

該命令對我的作品(使用Blei原代碼):

./lda est 0.1 10 settings.txt ap.dat random modeldir 

(隨意調整,你想爲初始α(0.1)和10個主題數())

+0

它沒有爲我工作'從ap.dat讀取數據 分段錯誤(核心轉儲)'說輸出:( – kingmakerking

+0

你可以發佈你正在使用的確切命令,以及settings.txt的內容和第一個十行ap.dat?另外,請嘗試使用http://www.cs.princeton.edu/~blei/lda-c/中的未修改版本。它沒有*看起來像github版本改變了anyt很重要,但值得檢查。並告訴我它崩潰的是哪一行(如果blei的版本崩潰,那麼崩潰);如果沒有,則爲github版本。 – Ray

+0

謝謝@Ray它爲我工作,kingmakerking確保您指向您ap.dat文件的正確位置,該示例假定您將它放在同一個文件夾中。另外,如果您在文本編輯器中打開了ap.dat,它可能會更改格式,因此請嘗試再次下載ap.dat,將其放入與lda文件相同的目錄並運行 – soheildb