Ich war mit der abschließenden Überprüfung beschäftigt und habe einige Zeit damit verbracht, ein Scrapy-Framework zu schreiben. Heute werde ich vorstellen, wie man mit Python Wortwolken generiert, obwohl es im Internet viele Tools zur Wortwolkengenerierung gibt schreibe es selbst in Python.
Was wir heute generieren werden, ist eine Wortwolke mit inspirierenden Liedern. Wir haben in der Baidu-Bibliothek etwa 20 Lieder gefunden, die uns bekannt sind, wie zum Beispiel „Sturborn“, „The Sea and the Sky“. alle.
Zu den zu verwendenden Python-Bibliotheken gehören Jieba (eine chinesische Wortsegmentierungsbibliothek), Wordcould, Matplotlib, PIL und Numpy.
Das erste, was wir tun müssen, ist, den Liedtext zu lesen. Ich habe den Liedtext im inspirierenden Liedtext im Dateiverzeichnis gespeichert.
Jetzt lesen wir es
#encoding=gbklyric= ''f=open('./励志歌曲歌词.txt','r')for i in f: lyric+=f.read()
#encoding=gbk wird hinzugefügt, um zu verhindern, dass nachfolgende Vorgänge SyntaxError melden: Nicht-UTF-8-Code, der mit „xc0“ beginnt.
Dann verwenden wir die Jieba-Wortsegmentierung, um die Lieder zu segmentieren und Wörter mit hoher Häufigkeit zu extrahieren
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)
Das Ergebnis ist:
Dann können wir Wortwolken über Bibliotheken wie wrodcloud generieren
Suchen Sie zunächst ein Bild, das Sie als Form der Wortwolke verwenden können
from PIL import Image,ImageSequenceimport numpy as npimport matplotlib.pyplot as pltfrom 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()
Speichern Sie das generierte Bild
wc.to_file('dream.png')
Vollständiger Code:
#encoding=gbkimport jieba.analysefrom PIL import Image,ImageSequenceimport numpy as npimport matplotlib.pyplot as pltfrom 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')
Das obige ist der detaillierte Inhalt vonTutorial zum Erstellen einer Wortwolke mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!