掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧祕

點擊上方關注,All in AI中國

導言:

主題模型是一組旨在發現大型文檔主題信息的算法。主題模型算法是一種統計方法,通過分析原始文本中的同一單詞的出現頻率來判斷主題。

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

隱含狄利克雷分佈(LDA)是由哥倫比亞大學的David M Blei、斯坦福大學的吳恩達和Michael Jordan (加州大學伯克利分校)開發的一種主題模型算法。簡單的說,LDA屬於自然語言處理領域中的無監督機器學習領域。

在這篇文章中,作者將嘗試對LDA進行一些基本的演算,但不打算深入到具體細節。然後,帶領我們使用python對NASA網站上公開提供的文檔進行主題模型。

基本判斷

LDA的主要目的是判斷文檔展示了多少個主題。Blei和他的團隊用"Seeking Life's Bare (Genetic) Necessities"這篇文章進行LDA算法的演練。其中,彩色標亮的地方是他們需要著重注意的部分。

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

其中,不同顏色的單詞分別代表著不同的主題。我們可以籠統的說,主題就是文本中詞彙的分佈情況。例如,在上面的文檔中,單詞的分佈情況如下,表示計算預測的部分用藍色標記。表示基因、基因組的地方用黃色標記等等。如果Blei博士和他的團隊花費更多的時間對每一個單詞都進行顏色標記(不包括停止詞),我們將看到這篇文章將遺傳學、數據分析和進化生物學融為一體。其中不同顏色(的單詞)佔文本的比例,表示這三門學科在文本中的應用情況。

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

在這裡需要強調的是,本文使用LDA得出的結果是建立在以下前提上的,具體內容如下:

  1. 對於主題文本的分析都採用條形圖居右的樣式。
  2. 不同的顏色代表著不同的主題。
  3. 你需要確定不同顏色代表的具體含義。如果說,你選擇黃色代表與遺傳學相關的單詞。主題模型會不斷的分析每一個單詞與與遺傳學的關係。
  4. 當主題模型確定你的單詞與黃色無關,它會轉向其他顏色並且重複第3(步驟)。

通過LDA你會對文章不同階段主題的變化有著更深的理解。換句話說,我們可以假設一篇文章是不同主題結合的模型。LDA就是對文章包含哪些主題作出的具體分析。

使用python開始主題模型:

我們從導入python庫開始。

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

就像建模前的任何數據一樣,我們必須對文本數據進行預處理。我們的預處理步驟包括消除停止詞等等。在提取數據之前,我們將創建一個預處理函數,以便在我們對數據進行處理。

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

我們現在需要取出存儲在本地的數據,然後使用剛才所述的步驟進行預處理。

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

在建模之前,讓我們先看看我們的數據是什麼樣子的。

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

現在,我們將把數據擬合到我們的LDA算法中。

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

現在是時候對LDA主題化建模進行可視化處理。從上面的代碼中可以看出,我們將參數num_spects設置為3,也就是說我們的模型將給我們提供3個主題。我們需要對每個主題進行可視化處理。

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

我們看到臭氧、大氣、飛行、排放等詞。這告訴我們,我們的文件包含與地球大氣中臭氧層有關的研究內容。

接下來,讓我們看看主題2要告訴我們的關於我們文檔的內容。

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

我們看到像飛行、超音速、商業、聲波等詞。這告訴我們這篇文章與航空工程有關。最後,我們對主題3進行可視化處理。

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

火星、任務和漫遊者等主題的分佈揭示了與火星探索有關的主題。

結語:

像LDA這樣的主題建模是無監督的機器學習代表,因為它能在文檔集中發現潛在的主題。主題模型對出版、內容推薦以及處理大量法律、科研文件都有著廣泛的作用。

補充鏈接:http://www.cs.columbia.edu/~blei/papers/Blei2012.pdf

掌握LDA算法,讓你輕輕鬆鬆搞清大型文檔中的奧秘

運營:李佳惠


分享到:


相關文章: