期末復(fù)習(xí)比較忙過(guò)段時(shí)間來(lái)專門寫scrapy框架使用,今天介紹如何用python生成詞云,雖然網(wǎng)上有很多詞云生成工具,不過(guò)自己用python來(lái)寫是不是更有成就感。
今天要生成的是勵(lì)志歌曲的詞云,百度文庫(kù)里面找了20來(lái)首,如《倔強(qiáng)》,海闊天空是,什么的大家熟悉的。
所要用到的python庫(kù)有 jieba(一個(gè)中文分詞庫(kù))、wordcould 、matplotlib、PIL、numpy。
首先我們要做的是讀取歌詞。我將歌詞存在了文件目錄下勵(lì)志歌曲文本中。
現(xiàn)在來(lái)讀取他
#encoding=gbk lyric= '' f=open('./勵(lì)志歌曲歌詞.txt','r') for i in f: lyric+=f.read()
加入#encoding=gbk是為了防止后面操作報(bào)錯(cuò)SyntaxError: Non-UTF-8 code starting with '\xc0'
然后我們用jieba分詞來(lái)對(duì)歌曲做分詞提取出詞頻高的詞
import jieba.analyse result=jieba.analyse.textrank(lyric,topK=50,withWeight=True) keywords = dict() for i in result: keywords[i[0]]=i[1] print(keywords)
得到結(jié)果:
然后我們就可以通過(guò)wrodcloud等庫(kù)來(lái)生成詞云了
首先先自己找一張圖片來(lái)作為生成詞云的形狀的圖
from PIL import Image,ImageSequence import numpy as np import matplotlib.pyplot as plt from wordcloud import WordCloud,ImageColorGenerator 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')
完整代碼:
#encoding=gbk import jieba.analyse from PIL import Image,ImageSequence import numpy as np import matplotlib.pyplot as plt from wordcloud import WordCloud,ImageColorGenerator lyric= '' f=open('./勵(lì)志歌曲歌詞.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生成詞云的實(shí)現(xiàn)方法(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
