期末復(fù)習(xí)比較忙過段時間來專門寫scrapy框架使用,今天介紹如何用python生成詞云,雖然網(wǎng)上有很多詞云生成工具,不過自己用python來寫是不是更有成就感。
今天要生成的是勵志歌曲的詞云,百度文庫里面找了20來首,如《倔強》,海闊天空是,什么的大家熟悉的。
所要用到的python庫有 jieba(一個中文分詞庫)、wordcould 、matplotlib、PIL、numpy。
首先我們要做的是讀取歌詞。我將歌詞存在了文件目錄下勵志歌曲文本中。
現(xiàn)在來讀取他
#encoding=gbklyric= ''f=open('./勵志歌曲歌詞.txt','r')for i in f: lyric+=f.read()加入#encoding=gbk是為了防止后面操作報錯SyntaxError: Non-UTF-8 code starting with '/xc0'
然后我們用jieba分詞來對歌曲做分詞提取出詞頻高的詞
import jieba.analyseresult=jieba.analyse.textrank(lyric,topK=50,withWeight=True)keywords = dict()for i in result: keywords[i[0]]=i[1]print(keywords)
得到結(jié)果:

然后我們就可以通過wrodcloud等庫來生成詞云了
首先先自己找一張圖片來作為生成詞云的形狀的圖

from PIL import Image,ImageSequenceimport numpy as npimport matplotlib.pyplot as pltfrom wordcloud import WordCloud,ImageColorGeneratorimage= Image.open('./tim.jpg')graph = np.array(image)wc = WordCloud(font_path='./fonts/simhei.ttf',background_color='White',max_words=50,mask=graph)wc.generate_from_frequencies(keywords)image_color = ImageColorGenerator(graph)plt.imshow(wc)plt.imshow(wc.recolor(color_func=image_color))plt.axis("off")plt.show() 
保存生成圖片
wc.to_file('dream.png')完整代碼:
#encoding=gbkimport jieba.analysefrom PIL import Image,ImageSequenceimport numpy as npimport matplotlib.pyplot as pltfrom wordcloud import WordCloud,ImageColorGeneratorlyric= ''f=open('./勵志歌曲歌詞.txt','r')for i in f: lyric+=f.read()result=jieba.analyse.textrank(lyric,topK=50,withWeight=True)keywords = dict()for i in result: keywords[i[0]]=i[1]print(keywords)image= Image.open('./tim.jpg')graph = np.array(image)wc = WordCloud(font_path='./fonts/simhei.ttf',background_color='White',max_words=50,mask=graph)wc.generate_from_frequencies(keywords)image_color = ImageColorGenerator(graph)plt.imshow(wc)plt.imshow(wc.recolor(color_func=image_color))plt.axis("off")plt.show()wc.to_file('dream.png')以上這篇python生成詞云的實現(xiàn)方法(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答
圖片精選