Tutorial zum Erstellen einer Wortwolke mit Python

巴扎黑
Freigeben: 2017-06-23 15:33:12
Original
3000 Leute haben es durchsucht

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()
Nach dem Login kopieren

#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)
Nach dem Login kopieren

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()
Nach dem Login kopieren

Speichern Sie das generierte Bild

wc.to_file('dream.png')
Nach dem Login kopieren


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')
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage