Tutoriel sur la façon de générer un nuage de mots en utilisant Python

巴扎黑
Libérer: 2017-06-23 15:33:12
original
3000 Les gens l'ont consulté

J'ai été occupé avec la révision finale et j'ai passé du temps à écrire un framework Scrapy. Aujourd'hui, je vais vous présenter comment utiliser Python pour générer des nuages ​​de mots. Bien qu'il existe de nombreux outils de génération de nuages ​​de mots sur Internet, il serait plus satisfaisant de le faire. écrivez-le vous-même en python.

Ce que nous allons générer aujourd'hui est un nuage de mots de chansons inspirantes. Nous avons trouvé environ 20 chansons dans la bibliothèque Baidu, telles que "Stubborn", "The Sea and the Sky", etc. tout le monde.

Les bibliothèques python à utiliser incluent jieba (une bibliothèque de segmentation de mots chinois), wordcould, matplotlib, PIL et numpy.

La première chose que nous devons faire est de lire les paroles. J'ai enregistré les paroles dans le texte de la chanson inspirante dans le répertoire de fichiers.

Lisons-le maintenant

#encoding=gbklyric= ''f=open('./励志歌曲歌词.txt','r')for i in f:
    lyric+=f.read()
Copier après la connexion

#encoding=gbk est ajouté pour empêcher les opérations ultérieures de signaler SyntaxError : code non UTF-8 commençant par 'xc0'
Ensuite, nous utilisons la segmentation des mots jieba pour segmenter les chansons et extraire les mots à haute fréquence

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)
Copier après la connexion

Le résultat est :

Ensuite, nous pouvons générer des nuages ​​de mots grâce à des bibliothèques telles que wrodcloud

Trouvez d'abord une image à utiliser comme forme du nuage de mots

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()
Copier après la connexion

Enregistrer l'image générée

wc.to_file('dream.png')
Copier après la connexion


Code complet :

#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')
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal