Maison >développement back-end >Tutoriel Python >Comment utiliser Python pour implémenter le partage d'exemples de code de nuages ​​de mots personnalisés

Comment utiliser Python pour implémenter le partage d'exemples de code de nuages ​​de mots personnalisés

黄舟
黄舟original
2018-05-25 09:39:563222parcourir

J'ai récemment vu un nuage de mots visuel, et il existe de nombreux outils de ce type sur Internet, mais ils ne sont pas parfaits, certains ne prennent pas en charge le chinois, certaines statistiques de fréquence des mots chinois sont inexplicables, certaines ne prennent pas en charge les formes personnalisées, et tous. La couleur ne peut pas être personnalisée, j'ai donc cherché en ligne et j'ai décidé d'utiliser python pour dessiner le nuage de mots

téléchargez d'abord la image


Graphique en nuage de mots

Un modèle est requis

pip install jieba
pip install wordcloud

Il doit également être installéJe n'y connais pas grand chose les deux autres choses que j'ai écrites sur Baidu

pip install scipy
pip install matplotlib

Parce que l'utilisation du système Ubuntu n'est pas aussi gênante que Windows et qu'il n'y a pas tellement de rapports d'erreurs

Êtes-vous excité de voir autant de gens créer leurs propres nuages ​​de mots ? Êtes-vous excité ? Faites-le tout de suite, l'impulsion est la première force créatrice.

jieba est un modèle de segmentation de mots chinois très simple à utiliser

document chinois jeiba

Quant à wordcloud, il n'y a pas de document chinois mais nous Si vous savez deviner, si votre anglais n'est pas bon, nous pouvons deviner. Vérifiez le code source.

Contribuer d'abord à tout mon code

#-*-coding:utf-8—-*-
import jieba.analyse
from wordcloud import WordCloud,ImageColorGenerator
from scipy.misc import imread
import matplotlib.pyplot as plt

class wc:
  def init(self,txt_file,img_file,font_file):
   self.f = open(txt_file,'r')
  self.txt = self.f.read()
   self.f.close()
  self.tags = jieba.analyse.extract_tags(self.txt,topK=100)
  #topK说白了就是返回几个关键词
  self.text = ' '.join(self.tags) #把分词链接起来,加空格因为英文靠空格分词
  self.img = imread(img_file)
  self.wc = WordCloud(font_path=font_file,background_color='white',max_words=100,mask=self.img,max_font_size=80)
###直接在这里进行猜###
#font_path指的是字体文件路径,因为wordcloud自带的字体不支持中文所以我们要指定一个字体文件,否者输出的图片全是框框
#background_color 默认是黑色 我设置成白色
#max_words最大显示的词数
#mask 背景图片
#max_font_size 最大字体字号
  self.word_cloud = self.wc.generate(self.text)

  def show_wc(self):
  #img_color = ImageColorGenerator(self.img)
    plt.imshow(self.word_cloud)
#可以通过 plt.imshow(self.wc.recolor(color_func=img_color))使图片颜色跟字体颜色一样
    plt.axis("off")
    plt.show()


if name=='main':
  mywc = wc('sanwen.txt','out.png','font.ttc')
  mywc.show_wc()


Utiliser wc.recolor(color_func=img_color)

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!

Déclaration:
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