《Python數據挖掘》筆記(八)文本中的主題建模

Python數據挖掘:概念、方法與實踐。Megan Squire著,姚軍譯,機械工業出版社,2017年。

筆記中有些內容直接引用原書。

=======================================================

在本章中,我們將學習:

a. 什麼是主題建模?我們可以用哪些常見技術完成這項任務?

b. 目前在Python中有哪些程序庫和工具可以應用於主題建模?它們是如何工作的?

c. 如何根據產生的結果,比較主題建模方法的效能?

d. 如何在現實問題上應用主題建模?

8.1 什麼是主題建模

主題建模比本文摘要不同的是其焦點更多的是主題和概念,而不僅是文本摘要。

無監督主題建模的關鍵組成部分是,不需要預先構造關鍵詞和主題列表。相反,主題列表是主題建模程序生成和組合而成的。

8.2 潛在狄利克雷分配

常用的技術是潛在狄利克雷分配(Latent Dirichlet Allocation, LDA)。LDA是一種概率主題建模技術。使用主題建模,我們的主要目標是找出這個文檔集中隱含的主題結構。主題結構包括三個部分:主題本身、主題在文檔中的統計分布以及文檔中包含主題的詞語。

本文使用的LDA實現是Gensim LDA,使用的簡化技術在2010年論文《Online Learning for Latent Dirichlet Allocation》中第一次描述。

8.3 Gensim主題建模

使用gensim.models.ldamodel.LdaModel.

8.3.1 理解Gensim LDA主題

Gensim將構建主題列表,人們可以根據每個主題包含的詞為該主題指定一些人類容易理解的傘形詞語,也就是概括一下主題。

8.3.2 理解Gensim LDA的遍數

LDA使用隨機性,因此每次運行,主題集會稍有不同。可以增加在數據上重複的遍數,減小隨機性對小數據集的影響,使結果收斂於最重要的主題。

8.3.3 對新文檔應用Gensim LDA模型

建好LDA主題模型後,就可以用其預測新文檔的主題。

8.3.4 序列化Gensim LDA對象

可以將構建好的主題模型通過序列化保存到硬碟,在需要的時候讀回。

1 序列化一個字典

可以使用字典對象上的save()函數。

2 序列化語料庫

Gensim有4種內建的方法可以序列化語料庫。第一種為矩陣市場MM格式。使用corpora.MmCorpus.serialize()。其它三種可以在Gensim文檔中查詢。

3. 序列化模型

lda = LdaModel(corpus,

id2word=dictionary, num_topics=4, passes=20)

lda.save()

8.4 用於更大項目的Gensim LDA

對Linus發送給LKML的所有郵件(22546封) 進行LDA分析,可以發現不同時間人們關心的問題/主題也在變化。

8.5 小結

BrianZhang:《Python數據挖掘》筆記(一)擴展你的數據挖掘工具箱zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(二)關聯規則挖掘zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(三)實體匹配zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(四) 網路分析zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(五) 文本情緒分析zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(六) 文本中的命名實體識別zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(七) 自動化文本摘要zhuanlan.zhihu.com圖標BrianZhang:《Python數據挖掘》筆記(九)挖掘數據異常zhuanlan.zhihu.com圖標軟體開發之路zhuanlan.zhihu.com圖標
推薦閱讀:

用Python實現excel 14個常用操作
花式玩轉多維矩陣|入門這篇就夠了
這或許是對小白最友好的python入門了吧——11,if語句初體驗
使用 Python 連接 Todoist 與 Pomotodo
50?python爬?代碼, 帶你正確打開知乎新世界!

TAG:數據挖掘 | Python |