獨家 | LDA主題建模和pyLDAvis可視化

作者:Xuan Qi

翻譯:方星軒

校對:歐陽錦

本文約1700字,建議閱讀6分鐘

本文的數據來自美國著名電視節目《老友記》。作者用python-Beautiful Soup抓取了224集中六個主要角色的全部劇本。角色有Ross Geller,Rachel Green,Monica Geller,Phoebe Buffay,Joey Tribbiani和Chandler Bing。本文將使用LDA對《老友記》進行主題建模。

標籤:自然語言處理數據可視化,主題建模

 流行的主題建模算法包括潛在語義分析*(LSA),層次狄利克雷過程*(HDP)和潛在狄利克雷分配*(LDA),其中LDA在實踐中由於效果出衆被廣泛採用。

主題模型是一組算法/統計模型,可以揭示文檔集中的隱藏主題。例如,“浪漫”,“恐怖”和“家庭”將在與電影有關的文檔中更頻繁地出現。“技術”,“計算機”和“算法”在計算機科學文檔中的出現頻率會更高。

pyLDAvis

pyLDAvis是一個交互式LDA可視化python軟件包。我的LDA建模結果是什麼樣的?我截取了一個pyLDAvis結果圖,如下圖所示。圓圈區域表示每個主題在整個語料庫中的重要性,圓圈中心之間的距離表示主題之間的相似性。對於每個主題,右側的直方圖列出了前30個最相關的字詞。LDA幫助我提取了6個主要主題。以該主題爲例,我看到的最相關的術語是光明節(hanukkah),化石(fossil),古魯(guru)等。對於我們的古生物學家,教授和Geller博士而言,這很可能是一個主題。我已將pyLDAvis分析結果保存爲.html文件,您可以從GitHubrepo(https://github.com/XuanX111/Friends_text_generator/blob/master/friend_lda.html)下載它。我是如何得到這個很酷的視覺效果的?接下來我將逐步解釋該過程。

自然語言處理

 

在處理句子之前,我首先將舞臺指導與實際對話分開,然後將它們分別存儲到pandas Dataframe中。

 

現在,我有六個文檔,每個文檔包含各個演員說的所有句子。在分詞,複詞之後,我進一步過濾了停用詞(例如a,on,and等),只選擇三個以上字母的詞。然後,我計算文檔中每個單詞的出現次數,此過程也稱爲詞袋模型(bag-of-words)。我使用python軟件包Gensim(https://radimrehurek.com/gensim/models/ldamodel.html)進行了LDA分析。筆記本和代碼可以在我的repo(https://github.com/XuanX111/Friends_text_generator/blob/master/Friends_LDAvis_Xuan_Qi.ipynb)中找到。

 

有趣的發現

 

我意識到,即使在《老友記》的角色中,其角色性格的動態特點也可以被探索。Rachel的性格隨着劇情的推進而得到發展。在第1季中,Rachel只是一個試圖探索世界的被寵壞的富家女孩。但到第6季,她逐漸成長爲堅強獨立的女性。她所使用的詞隨着角色的變化而變化,這可以通過LDA主題模型反映出來。我通過按“季”解析.txt文件生成了10 * 6個文檔。《老友記》中共有10季和6個主要角色,因此我擁有的文檔包括第1季,第2季…的Rachel,第1季,第2季的Chandler等。

 

經過50次迭代後,RachelLDA模型幫助我提取了8個主要主題(如上圖)。主題之間存在一些重疊,但是通常來講,LDA主題模型可以幫助我掌握趨勢。

 

思考總結

有多少個主題可供選擇?或如何評估LDA模型。

 

潛在的狄利克雷分配是在未標記的文件上訓練的。因此,人們不禁想知道如何評估這種非監督模型?LDA通常要麼是通過測量某些次級任務(例如文檔分類或信息檢索)的性能來評估的,要麼是通過給定一些訓練文檔來估計未知保留文檔的概率來評估的。通常,更好的模型將提高文檔被保留的可能性。有一篇非常好的論文(http://dirichlet.net/pdf/wallach09evaluation.pdf)介紹了評估LDA模型的各種方法。

 

評估主題模型是否良好的另一種方法是遵循自己的直覺。當你擁有一個不錯的模型時,通常可以講一個有關所生成的主題的故事。以我的主題模型爲例,經過50次迭代,我分配了10個主題。當我進入每個主題時,我有6個主要主題,我發現大多數單詞確實與一個字符相關。例如,在主題4中,我看到了Gavin,他曾經是碰巧喜歡Rachel的一位同事。Kim·是Rachel的前任老闆。Rachel曾經在Bloomingdale工作。她確實很八卦。如下圖所示,主題4中的大多數單詞都以字符Rachel爲中心。我可以圍繞主題講一個有關的故事,這說明我的模型很好。

備註*:

潛在語言分析(Latent Semantic Analysis,簡稱:LSA):是自然語言處理中的一種技術,它通過產生與文檔和術語相關的一組概念來分析文檔和它們包含的術語之間的關係,尤其是分佈式語義。

層次狄利克雷過程(hierarchical Dirichlet process,簡稱HDP):是一種非參數貝葉斯方法,用於對分組數據進行聚類。此方法允許組通過組之間的羣集共享來共享統計強度。

潛在狄利克雷分佈(the latent Dirichlet allocation,簡稱LDA):是一種生成統計模型,該模型允許由未觀察組解釋觀察集,這些觀察組解釋了爲什麼數據的某些部分相似。

原文標題:

LDA Topic Modeling and pyLDAvis Visualization

原文鏈接:

https://medium.com/@sherryqixuan/topic-modeling-and-pyldavis-visualization-86a543e21f58

編輯:黃繼彥

校對:汪雨晴

譯者簡介

方星軒,美國東北大學數據分析研究生在讀,本科畢業於美國莫瑞州立大學商學院。對利用數據來進行市場和企業內的分析有着濃厚的興趣,對機器學習AI領域充滿好奇。喜歡籃球,吉他,旅行,希望能夠結交朋友分享故事,拓寬視野,客觀的看待世事萬物。

翻譯組招募信息

工作內容:需要一顆細緻的心,將選取好的外文文章翻譯成流暢的中文。如果你是數據科學/統計學/計算機類的留學生,或在海外從事相關工作,或對自己外語水平有信心的朋友歡迎加入翻譯小組。

你能得到:定期的翻譯培訓提高志願者的翻譯水平,提高對於數據科學前沿的認知,海外的朋友可以和國內技術應用發展保持聯繫,THU數據派產學研的背景爲志願者帶來好的發展機遇。

其他福利:來自於名企的數據科學工作者,北大清華以及海外等名校學生他們都將成爲你在翻譯小組的夥伴。

點擊文末“閱讀原文”加入數據派團隊~

轉載須知

如需轉載,請在開篇顯著位置註明作者和出處(轉自:數據派ID:DatapiTHU),並在文章結尾放置數據派醒目二維碼。有原創標識文章,請發送【文章名稱-待授權公衆號名稱及ID】至聯繫郵箱,申請白名單授權並按要求編輯。

發佈後請將鏈接反饋至聯繫郵箱(見下方)。未經許可的轉載以及改編者,我們將依法追究其法律責任。

點擊“閱讀原文”擁抱組織

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章