python生成詞云的實現(xiàn)方法(推薦)
期末復(fù)習(xí)比較忙過段時間來專門寫scrapy框架使用,今天介紹如何用python生成詞云,雖然網(wǎng)上有很多詞云生成工具,不過自己用python來寫是不是更有成就感。
今天要生成的是勵志歌曲的詞云,百度文庫里面找了20來首,如《倔強(qiáng)》,海闊天空是,什么的大家熟悉的。
所要用到的python庫有 jieba(一個中文分詞庫)、wordcould 、matplotlib、PIL、numpy。
首先我們要做的是讀取歌詞。我將歌詞存在了文件目錄下勵志歌曲文本中。
現(xiàn)在來讀取他
#encoding=gbk lyric= '' f=open('./勵志歌曲歌詞.txt','r') for i in f: lyric+=f.read()
加入#encoding=gbk是為了防止后面操作報錯SyntaxError: Non-UTF-8 code starting with '\xc0'
然后我們用jieba分詞來對歌曲做分詞提取出詞頻高的詞
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é)果:
然后我們就可以通過wrodcloud等庫來生成詞云了
首先先自己找一張圖片來作為生成詞云的形狀的圖
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('./勵志歌曲歌詞.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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Windows環(huán)境打包python工程為可執(zhí)行程序的詳細(xì)過程
我的開發(fā)環(huán)境是windows7,然后系統(tǒng)是64位,安裝的python和wxpython都是32位的,本文記錄我怎樣用pyinstaller打包我用python開發(fā)的工程,在網(wǎng)上搜索了很多資源,基本上都是不全的,所以我在這兒記錄一下這個比較完整的過程,一起看看吧2024-01-01Python增強(qiáng)賦值和共享引用注意事項小結(jié)
這篇文章主要給大家介紹了關(guān)于Python增強(qiáng)賦值和共享引用注意事項的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05淺析Python與Java和C之間有哪些細(xì)微區(qū)別
這篇文章主要介紹了Python與Java和C之間有哪些細(xì)微區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08python使用pandas實現(xiàn)Excel轉(zhuǎn)換為CSV文件
在數(shù)據(jù)處理和分析中,我們經(jīng)常需要將 Excel 文件轉(zhuǎn)換為 CSV 格式,這篇文章我們主要來介紹一下python如何使用pandas實現(xiàn)Excel轉(zhuǎn)換為CSV文件,希望對大家有所幫助2024-10-10Python將腳本程序轉(zhuǎn)變?yōu)榭蓤?zhí)行程序的實現(xiàn)
本文主要介紹了Python將腳本程序轉(zhuǎn)變?yōu)榭蓤?zhí)行程序的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Pyside2中嵌入Matplotlib的繪圖的實現(xiàn)
這篇文章主要介紹了Pyside2中嵌入Matplotlib的繪圖的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02