基於JGibbLDA lda topic主題模型

來源:互聯網
上載者:User

最近在做基於LDA(Latent Dirichlet Allocation)的文本分類處理,開始學習和接觸了LDA,因為代碼採用的是Java,所以我選擇的LDA開源工具是JGibbLDA,這個是LDA的Java版本實現,下載地址為:http://jgibblda.sourceforge.net/ ,當前最新版本為v1.0。同時對應的C++版本為GibbsLDA,下載地址為:http://gibbslda.sourceforge.net/。

       感謝Phantom(byr ID)在學習和使用過程中對我的指導和協助。

   首先下載並解壓,解壓後檔案目錄如下所示:


    bin存放的是編譯後的class檔案,lib中放args4j-2.0.6.jar,models中存放已經產生好的主題模型樣本,src存放那個源檔案。我在使用時把jar檔案放於工程中,另外直接把src下的jgibblda包複製於項目中。     1.輸入檔案格式

    輸入檔案的格式形如下圖所示:


    其中第一行表述訓練語料文檔的數目,之後每一行是一個文檔,每一行的內容是文檔中的詞語。     2.輸出檔案

    輸出檔案主要有<model_name>.others、<model_name>.phi、<model_name>.theta、<model_name>.tassign、<model_name>.twords,另外還有一個wordmap.txt檔案。其中<model_name>根據採樣迭代次數來指定,如model-00800,最後一次採樣名稱命名為model-final。

.others檔案儲存體LDA模型參數,如alpha、beta等。

.phi檔案儲存體詞語-主題分布,每一行是一個主題,列內容為詞語。

.theta檔案主題文檔分布,每一行是一個文檔,列內容是主題機率。

.tassign檔案是訓練預料中單詞的主題指定(歸屬),每一行是一個語料文檔。     3.使用方式

    JGibbLDA可以通過命令列或者代碼調用運行。
    3.1.命令列調用簡介

初次使用訓練模型

[java]  view plain copy $ java [-mx512M] -cp bin:lib/args4j-2.0.6.jar jgibblda.LDA -est [-alpha <double>] [-beta <double>] [-ntopics <int>] [-niters <int>] [-savestep <int>] [-twords <int>] –dir <string> -dfile <string>  
-est 從訓練語料中評估出LDA模型

-alpha LDA模型中的alpha數值,預設為50/K(K是主題數目)

-beta LDA模型中的beta數值,預設是0.1

-ntopics 主題數目,預設值是100

-niters GIbbs採樣的迭代數目,預設值為2000

-savestep 指定開始儲存LDA模型的迭代次數

-dir 訓練語料目錄

-dfile 訓練語料檔案名稱

此處需要指出的是dfile最好寫輸入語料檔案名稱,而dir指定語料檔案所在的目錄,訓練過程中產生的模型檔案會預設存放在dir下面。例如語料的絕對路徑為/usr/Java/models/newDoc.dat,可以設定為dir=/usr/Java/models,而dfile=newDoc.dat,這樣訓練過程中的模型檔案會預設存放在/usr/Java/models下面。

在原有模型上繼續迭代

[java]  view plain copy $ java [-mx512M]-cp bin:lib/args4j-2.0.6.jar jgibblda.LDA -estc -dir <string> -model <string> [-niters <int>] [-savestep <int>] [-twords <int>] 
具體參數的含義可以在官網上找到,這裡不一一介紹了。

根據現有LDA模型,預測新語料

[java]  view plain copy $ java [-mx512M] -cp bin:lib/args4j-2.0.6.jar jgibblda.LDA -inf -dir <string> -model <string> [-niters <int>] [-twords <int>] -dfile <string>  
       3.2代碼調用

       初次訓練,產生模型

[java]  view plain copy

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.