python生成詞云的實(shí)現(xiàn)方法(推薦)
期末復(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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
pytorch 獲取層權(quán)重,對(duì)特定層注入hook, 提取中間層輸出的方法
今天小編就為大家分享一篇pytorch 獲取層權(quán)重,對(duì)特定層注入hook, 提取中間層輸出的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
python實(shí)現(xiàn)復(fù)制大量文件功能
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)復(fù)制大量文件功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
解決python存數(shù)據(jù)庫(kù)速度太慢的問(wèn)題
這篇文章主要介紹了解決python存數(shù)據(jù)庫(kù)速度太慢的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
pycharm打開chrome自動(dòng)退出錯(cuò)誤的解決方法
這篇文章主要給大家介紹了關(guān)于pycharm打開chrome自動(dòng)退出錯(cuò)誤的解決方法,文中通過(guò)實(shí)例代碼以及圖文將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
Python異步編程中asyncio.gather的并發(fā)控制詳解
在Python異步編程生態(tài)中,asyncio.gather是并發(fā)任務(wù)調(diào)度的核心工具,本文將通過(guò)實(shí)際場(chǎng)景和代碼示例,展示如何結(jié)合信號(hào)量機(jī)制實(shí)現(xiàn)精準(zhǔn)并發(fā)控制,希望對(duì)大家有所幫助2025-03-03
Python字節(jié)碼與程序執(zhí)行過(guò)程詳解
這篇文章主要為大家介紹了Python字節(jié)碼與程序執(zhí)行過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
django vue3實(shí)現(xiàn)大文件分段續(xù)傳(斷點(diǎn)續(xù)傳)
本文介紹了使用Django和Vue3實(shí)現(xiàn)大文件分段上傳(斷點(diǎn)續(xù)傳)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01

