文本词频分析_Python初学
生活随笔
收集整理的這篇文章主要介紹了
文本词频分析_Python初学
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目的是將文本的詞頻進(jìn)行統(tǒng)計(jì)分析,并做成詞云
import jieba import matplotlib.pyplot as plt from wordcloud import WordCloud,ImageColorGenerator from imageio import imread# 引入相應(yīng)的庫(kù),jieba是中文分詞庫(kù),pyplot是作圖,wordcloud是做詞云,imageio是圖像分析# 首先打開(kāi)要統(tǒng)計(jì)的文本 with open('test.txt','r',encoding='UTF-8') as novelFile:novel = novelFile.read() # 其次將一些視作分隔的標(biāo)點(diǎn)符號(hào),一些詞語(yǔ)導(dǎo)入為list stopwords = [line.strip() for line in open('stop.txt','r',encoding='UTF-8').readlines()]# 利用jieba庫(kù) 進(jìn)行一個(gè)精準(zhǔn)分詞操作 novelList = list(jieba.lcut(novel)) novelDict = {}# 進(jìn)行文本詞語(yǔ)統(tǒng)計(jì) for word in novelList:if word not in stopwords:# 不統(tǒng)計(jì)字?jǐn)?shù)為1 的詞if len(word) == 1:continueelse:novelDict[word] = novelDict.get(word,0) + 1# 對(duì)詞頻進(jìn)行排序 novelListSorted = list(novelDict.items()) novelListSorted.sort(key= lambda e : e[1],reverse = True)# 打印前10詞頻 topWordNum = 0 for topWordNum in novelListSorted[:10]:print(topWordNum)# 作一個(gè)對(duì)應(yīng)的條形圖 x = [c for c,v in novelListSorted] y = [v for c,v in novelListSorted] plt.plot(x[:10],y[:10],color = 'r') plt.show()# 背景圖片 bg_pic = imread('圖1.png')# 使用自定義字體msyh.ttc wordcloud = WordCloud(mask=bg_pic,background_color='white',\scale = 1.5,font_path='msyh.ttc').generate(' '.join(novelDict.keys())) plt.imshow(wordcloud) plt.axis('off') plt.show()wordcloud.to_file('父親.jpg')總結(jié)
以上是生活随笔為你收集整理的文本词频分析_Python初学的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 惠普笔记本linux系统启动不了怎么办,
- 下一篇: websocket python爬虫_p