文本挖掘:LDA文檔主題生成模型
最遠的距離,莫過天馬到德智
——侃爺
藍天,白雲,烈日當空。
七月的長沙是相當熱了。
那就讓我們在知識的海洋裡面降降溫咯。
最近關注科技新聞的應該都發現了阿里推出全球首家人工智慧服飾店、百度發布專門用於 AI 大規模運算的晶元「崑崙」以及Facebook收購了英國的人工智慧企業Bloomsbury AI等等超多大事件。
然後前幾天,PYPL發布了7月最新的編程語言排行榜。下面是最新的編程語言排行榜前十。人工智慧以及大數據挖掘應用的發展使得Python快速的登到了榜首的位置。同時,R語言也穩步上升到第7,後續依舊有持續上升的趨勢。
看完了Python和R的巨大的發展前景,接下來就來了解用Python和R都能很好的實現的文本挖掘中的LDA文檔主題生成模型。
首先LDA(Latent Dirichlet Allocation)就是一種文檔的主題生成模型。簡單來說LDA的思想就是假設一篇文章的每個詞都是以一定的概率選擇了某個主題,並從這個主題中以一定的概率選擇某個詞語而形成的。這樣文檔到主題服從多項式分布,主題到詞也服從多項式分布,整個模型就是一個三層的貝葉斯概率模型。
好啦,上面這個概念可能看起來很懵逼,然後這裡用通俗的話來講講。
首先,看兩個句子:
『美國發動貿易戰』
『中國股市波動』。
如果使用共詞分析方法來探討這兩句話的主題的話可能會發現這兩句話不相關。但是我們知道,美國發動的貿易戰會對中國股市有影響,因此這兩句話是有可能屬於一個主題下的。
怎麼樣生成一個文檔的主題呢?這是本文的關鍵。
先看看LDA的三層貝葉斯概率模型的表示。
假設文檔集D中的每篇文檔d可以看做由單片語成的。
然後文檔聚類的結果會得到k個主題,k個topic使用表示。
文檔集中的每個文檔d對應到不同的topic中的概率分別為θd
,這裡pti表示的是d對應第i個topic的概率。
最後,對每個topict,生成不同單詞的概率為φt
,其中,pwi表示t生成第i個單詞的概率。
這樣就得到三層貝葉斯概率模型的基礎了,由此可以推出LDA的核心公式:
p(w|d)=p(w|t)*p(t|d),這個公式也就是上面的LDA模型的表達式。
通過核心公式可以看出來,topic只是作為中間層給出了每個文檔d中每個單詞w的概率。
這樣實現LDA方法的核心就是得到適合的θd和φt,在實現中,這是個不斷優化的過程,根據你初始給的θd和φt得到每個文檔d中每個單詞w的概率,然後通過這個概率來更新這個單詞的topic,從而反過來更新θd和φt,循環往複,知道達到你想要的結果。
當然,這篇推文主要對LDA進行了講解,沒有給出Python和R的實現代碼,有需要的朋友可以加入516數據工作室的學習交流討論組進行探討。
我們下次再見,如果還有下次的話!!!
【新浪微博@516數據工作室】
長按下方二維碼關注"516數據工作室"


TAG:516數據工作室 |