Heim  >  Artikel  >  Backend-Entwicklung  >  Tutorial zum Erstellen einer Wortwolke mit Python

Tutorial zum Erstellen einer Wortwolke mit Python

巴扎黑
巴扎黑Original
2017-06-23 15:33:122940Durchsuche

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!

Stellungnahme:
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