熱詞分析在公眾趨勢分析棋嘲、輿情分析有很寬廣的應(yīng)用,我們來看看怎么從一個TXT文件中分析出文章的熱詞出來按脚,我們采用流行的第三方“結(jié)巴”包來實現(xiàn)泵督。
首先安裝第三方包(matplotlib,jieba哥倔,wordcloud秸架,numpy)mmatplotlib主要來繪制熱力云圖,jieba來做熱詞分析,wordcloud詞云展示咆蒿,numpy做多維數(shù)組處理东抹。
網(wǎng)上弄段代碼:
import matplotlib
import matplotlib.pyplot as plt #數(shù)據(jù)可視化
import jieba #詞語切割
import wordcloud #分詞
from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS #詞云,顏色生成器沃测,停止
import numpy as np #科學(xué)計算
from PIL import Image #處理圖片
def ciyun():
? ? #打開文本
? ? textfile = open('input.txt').read() #讀取文本內(nèi)容
? ? wordlist = jieba.cut_for_search(textfile)#切割詞語
? ? space_list = ' '.join(wordlist) # 鏈接詞語
? ? backgroud = np.array(Image.open('2.jpg')) #背景圖片缭黔,只有黑白圖才能按照形狀生成詞云
? ? mywordcloud = WordCloud(width=4200, height=3600,
? ? ? ? ? ? ? ? ? ? ? ? ? ? background_color= 'white',#背景顏色
? ? ? ? ? ? ? ? ? ? ? ? ? ? mask=backgroud, #寫字用的背景圖,從圖片中提取顏色
? ? ? ? ? ? ? ? ? ? ? ? ? ? max_words=500, #最大詞語數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? stopwords=STOPWORDS,#停止的默認(rèn)詞語
? ? ? ? ? ? ? ? ? ? ? ? ? ? font_path='simkai.ttf',#源碼自帶字體
? ? ? ? ? ? ? ? ? ? ? ? ? ? max_font_size=100,#最大字體尺寸
? ? ? ? ? ? ? ? ? ? ? ? ? ? random_state=50,#隨機角度
? ? ? ? ? ? ? ? ? ? ? ? ? ? scale=1).generate(space_list) #生成詞云
? ? image_color = ImageColorGenerator(backgroud)#生成詞云的顏色
? ? plt.imshow(mywordcloud) #顯示詞云
? ? plt.axis('off') #關(guān)閉坐標(biāo)(x,y軸)
? ? plt.savefig('output.png') #保存圖片
? ? plt.show()#顯示
def main():
? ? ciyun()
if __name__ == '__main__':
? ? main()
還是很順利蒂破,沒太多坑馏谨,文章放在input.txt里面,結(jié)果輸出output.png附迷,這段代碼的主要流程是惧互,先導(dǎo)入input.txt,然后用jieba分詞喇伯,提取首500個熱詞喊儡,然后調(diào)用mywordcloud 展示并輸出。下圖是輸出例子稻据。