若是您有任何疑問,請在下面發表評論。
大數據部落 -中國專業的第三方數據服務提供商,提供定製化的一站式數據挖掘和統計分析諮詢服務
統計分析和數據挖掘諮詢服務:y0.cn/teradat(諮詢服務請聯繫官網客服)
【服務場景】
科研項目; 公司項目外包;線上線下一對一培訓;數據爬蟲採集;學術研究;報告撰寫;市場調查。
【大數據部落】提供定製化的一站式數據挖掘和統計分析諮詢
歡迎選修咱們的R語言數據分析挖掘必知必會課程!
在這篇文章中,我將介紹用於Latent Dirichlet Allocation(LDA)的lda Python包的安裝和基本用法。我不會在這篇文章中介紹該方法的理論基礎。然而,這個模型的主要參考,Blei etal 2003能夠在線免費得到,我認爲將語料庫(文檔集)中的文檔分配給基於單詞矢量的潛在(隱藏)主題的主要思想是至關容易理解的而這個例子(來自lda)將有助於鞏固咱們對LDA模型的理解。那麼,讓咱們開始......python
在以前的帖子中,我介紹了使用pip和 virtualenwrapper安裝Python包,請參閱帖子瞭解更多詳細信息:git
簡而言之,我將提到兩種方法:github
我將以用戶身份安裝lda微信
這也將安裝所需的pbr包。如今我將 在一個設置中提供lda,其中包含我以前安裝的全部其餘軟件包(再次參見上文)。使用此方法,您應該在安裝後獲得相似的內容:app
名稱:ldadom
版本:0.3.2python2.7
位置:/home/cstrelioff/.local/lib/python2.7/site-packagespost
須要:pbr,numpy測試
我已經安裝了numpy,所以沒有修改。大數據
因此,就是這樣,lda已經安裝好了。讓咱們一塊兒完成隨包提供的示例。
lda github存儲庫中的示例查看路透社新聞發佈的語料庫 - 讓咱們複製一下並添加一些細節以更好地瞭解正在發生的事情。此要點提供了一個包含全部要遵循的代碼的腳本,名爲 ex002_lda.py。首先,咱們作一些導入:
接下來,咱們導入用於示例的數據。這包含在 lda包中,所以這一步很簡單(我還打印出每一個項目的數據類型和大小):
從上面咱們能夠看到有395個新聞項目(文檔)和一個大小爲4258的詞彙表。文檔術語矩陣X具備395個詞彙表中每一個4258個詞彙單詞的出現次數。文檔。例如,X [0,3117]是單詞3117在文檔0中出現的次數。咱們能夠找出計數和與之對應的單詞(讓咱們也獲得文檔標題):
固然咱們應該指望X 矩陣中有不少零 - 我選擇這個例子來得到非零結果。
接下來,咱們初始化並擬合LDA模型。要作到這一點,咱們必須選擇主題的數量(其餘方法也能夠嘗試查找主題的數量,但對於LDA,咱們必須假設一個數字)。繼續咱們選擇的示例:
先前有幾個參數咱們保留默認值。據我所知,這隻使用對稱先驗 - 我將不得不更多地研究它(參見Wallach etal 2009討論這個問題)。
從擬合模型中咱們能夠看到主題詞機率:
從輸出的大小咱們能夠看出,對於20個主題中的每個,咱們在詞彙表中分配了4258個單詞。對於每一個主題,應該對單詞的機率進行標準化。咱們來看看前5:
咱們還能夠得到每一個主題的前5個單詞(按機率):
這讓咱們瞭解了20個主題可能意味着什麼 - 你能看到模式嗎?
咱們從模型中得到的其餘信息是文檔主題機率:
查看輸出的大小,咱們能夠看到395個文檔中的每一個文檔都有20個主題的分佈。這些應該針對每一個文檔進行標準化,讓咱們測試前5個:
文件: 0 總和: 1.0
文件: 1 總和: 1.0
文件: 2 總和: 1.0
文件: 3 總和: 1.0
文件: 4 總和: 1.0
使用新故事的標題,咱們能夠對最可能的主題進行抽樣:
讓咱們看看一些主題詞分佈是什麼樣的。這裏的想法是每一個主題應該有一個獨特的單詞分佈。在下面的詞幹圖中,每一個詞幹的高度反映了焦點主題中單詞的機率:
大數據部落 -中國專業的第三方數據服務提供商,提供定製化的一站式數據挖掘和統計分析諮詢服務
統計分析和數據挖掘諮詢服務:y0.cn/teradat(諮詢服務請聯繫官網客服)
【服務場景】
科研項目; 公司項目外包;線上線下一對一培訓;數據爬蟲採集;學術研究;報告撰寫;市場調查。
【大數據部落】提供定製化的一站式數據挖掘和統計分析諮詢
歡迎選修咱們的R語言數據分析挖掘必知必會課程!