五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Python之LDA主題模型算法應(yīng)用

2021-01-21 20:14 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=5318

?

在這篇文章中,我將介紹用于Latent Dirichlet Allocation(LDA)的lda Python包的安裝和基本用法。我不會(huì)在這篇文章中介紹該方法的理論基礎(chǔ)。然而,這個(gè)模型的主要參考,Blei etal 2003可以在線免費(fèi)獲得,我認(rèn)為將語(yǔ)料庫(kù)(文檔集)中的文檔分配給基于單詞矢量的潛在(隱藏)主題的主要思想是相當(dāng)容易理解的而這個(gè)例子(來(lái)自lda)將有助于鞏固我們對(duì)LDA模型的理解。那么,讓我們開始......

安裝lda

在之前的帖子中,我介紹了使用pip和?virtualenwrapper安裝Python包,請(qǐng)參閱帖子了解更多詳細(xì)信息:

  • 在Ubuntu 14.04上安裝Python包

  • 在Ubuntu 14.04上的virtualenv和virtualenvwrapper

簡(jiǎn)而言之,我將提到兩種方法:

  • 方法1

我將以用戶身份安裝lda

  1. $ pip install --user lda


這也將安裝所需的pbr包。現(xiàn)在我將 在一個(gè)設(shè)置中提供lda,其中包含我之前安裝的所有其他軟件包(再次參見上文)。使用此方法,您應(yīng)該在安裝后得到類似的內(nèi)容:

  1. $ pip show lda


  2. ---

名稱:lda

版本:0.3.2

位置:/home/cstrelioff/.local/lib/python2.7/site-packages

需要:pbr,numpy

我已經(jīng)安裝了numpy,因此沒有修改。

所以,就是這樣,lda已經(jīng)安裝好了。讓我們一起完成隨包提供的示例。

一個(gè)例子

lda github存儲(chǔ)庫(kù)中的示例查看路透社新聞發(fā)布的語(yǔ)料庫(kù) - 讓我們復(fù)制一下并添加一些細(xì)節(jié)以更好地了解正在發(fā)生的事情。此要點(diǎn)提供了一個(gè)包含所有要遵循的代碼的腳本,名為 ex002_lda.py。首先,我們做一些導(dǎo)入:

  1. import?numpy?as?np


  2. import?lda


  3. import?lda.datasets

接下來(lái),我們導(dǎo)入用于示例的數(shù)據(jù)。這包含在 lda包中,因此這一步很簡(jiǎn)單(我還打印出每個(gè)項(xiàng)目的數(shù)據(jù)類型和大?。?/p>

從上面我們可以看到有395個(gè)新聞項(xiàng)目(文檔)和一個(gè)大小為4258的詞匯表。文檔術(shù)語(yǔ)矩陣X具有395個(gè)詞匯表中每個(gè)4258個(gè)詞匯單詞的出現(xiàn)次數(shù)。文檔。例如,X [0,3117]是單詞3117在文檔0中出現(xiàn)的次數(shù)。我們可以找出計(jì)數(shù)和與之對(duì)應(yīng)的單詞(讓我們也得到文檔標(biāo)題):

  1. doc_id?=?0


  2. word_id?=?3117


  3. print (“doc id:{} word id:{}”?。format?(doc_id?,?word_id?))


  4. print (“ - count:{}”?。format?(X?[?doc_id?,?word_id?]))


  5. print (“ - word:{}”?。format?(vocab?[?word_id?]))


  6. print (“ - doc:{}”?。format?(titles?[?doc_id?]))


  7. doc id?:?0?word id?:?3117


  8. -?count?:?2


  9. -?word?:?heir?-?to?-?the?-?throne

?當(dāng)然我們應(yīng)該期望X 矩陣中有很多零 - 我選擇這個(gè)例子來(lái)獲得非零結(jié)果。

選擇模型

接下來(lái),我們初始化并擬合LDA模型。要做到這一點(diǎn),我們必須選擇主題的數(shù)量(其他方法也可以嘗試查找主題的數(shù)量,但對(duì)于LDA,我們必須假設(shè)一個(gè)數(shù)字)。繼續(xù)我們選擇的示例:

  1. model?=?lda?。LDA?(n_topics?= 20 ,?n_iter?= 500 ,?random_state?= 1


先前有幾個(gè)參數(shù)我們保留默認(rèn)值。據(jù)我所知,這只使用對(duì)稱先驗(yàn) - 我將不得不更多地研究它(參見Wallach etal 2009討論這個(gè)問題)。

主題字

從擬合模型中我們可以看到主題詞概率:

從輸出的大小我們可以看出,對(duì)于20個(gè)主題中的每一個(gè),我們?cè)谠~匯表中分配了4258個(gè)單詞。對(duì)于每個(gè)主題,應(yīng)該對(duì)單詞的概率進(jìn)行標(biāo)準(zhǔn)化。我們來(lái)看看前5:

  1. for?n?in?range?(5 ):


  2. sum_pr?=?sum?(topic_word?[?n?,:])


  3. print (“topic:{} sum:{}”?。format?(n?,?sum_pr?))

?

我們還可以獲得每個(gè)主題的前5個(gè)單詞(按概率):

  1. ?*?主題?6

  2. -?德國(guó) 德國(guó) 戰(zhàn)爭(zhēng) 政治 政府

  3. *?主題?7


  4. -?哈里曼 你。小號(hào) 克林頓 丘吉爾 大使


  5. *?主題?8


  6. -?葉利欽 的俄羅斯 俄羅斯 總統(tǒng) 克里姆林宮


  7. *?主題?9


  8. -?王子 女王 鮑爾斯 教會(huì) 王


  9. *?主題?10


  10. -?辛普森 億 年前 南


  11. -?bernardin 紅衣主教 癌癥 教會(huì) 生活


  12. *?主題?17


  13. -?死于 喪葬 教會(huì) 城市 死亡


  14. *?主題?18


  15. -?博物館 肯尼迪 文化 城市 文化


  16. *?主題?19


  17. -?藝術(shù) 展 世紀(jì) 城市 之旅

這讓我們了解了20個(gè)主題可能意味著什么 - 你能看到模式嗎?

文檔主題

我們從模型中獲得的其他信息是文檔主題概率:

doc_topic?=?model?。doc_topic_

查看輸出的大小,我們可以看到395個(gè)文檔中的每個(gè)文檔都有20個(gè)主題的分布。這些應(yīng)該針對(duì)每個(gè)文檔進(jìn)行標(biāo)準(zhǔn)化,讓我們測(cè)試前5個(gè):

  1. for?n?in?range?(5 ):


  2. sum_pr?=?sum?(doc_topic?[?n?,:])


  3. print (“document:{} sum:{}”?。format?(n?,?sum_pr?))

文件?0?總和?1.0

文件?1?總和?1.0

文件?2?總和?1.0

文件?3?總和?1.0

文件?4?總和?1.0

使用新故事的標(biāo)題,我們可以對(duì)最可能的主題進(jìn)行抽樣:

  1. for?n?in?range?(10 ):


  2. topic_most_pr?=?doc_topic?[?n?] 。argmax?()


  3. print (“doc:{} topic:{} \ n {} ...”?。format?(n?,


  4. topic_most_pr?,


  5. titles?[?n?] [:50 ]))

?

可視化

?讓我們看看一些主題詞分布是什么樣的。這里的想法是每個(gè)主題應(yīng)該有一個(gè)獨(dú)特的單詞分布。在下面的詞干圖中,每個(gè)詞干的高度反映了焦點(diǎn)主題中單詞的概率:

  1. plt?。tight_layout?()


  2. plt?。show?()

?

最后,讓我們看一下幾個(gè)文檔的主題分布。這些分布給出了每個(gè)文檔的20個(gè)主題中每個(gè)主題的概率。我只會(huì)畫一些:

  1. plt?。tight_layout?()


  2. plt?。show?()

?

????

?


Python之LDA主題模型算法應(yīng)用的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
阿尔山市| 阆中市| 抚顺市| 永吉县| 原阳县| 澜沧| 兰考县| 家居| 根河市| 鄂州市| 建昌县| 临邑县| 平原县| 汉沽区| 喀什市| 绩溪县| 台安县| 鹤峰县| 宁远县| 吴川市| 南通市| 白玉县| 中江县| 自贡市| 华宁县| 额济纳旗| 井研县| 家居| 抚远县| 正蓝旗| 同江市| 蒙山县| 平泉县| 宁安市| 乌兰察布市| 青铜峡市| 措勤县| 德昌县| 鲁山县| 尼勒克县| 镇江市|