python英文词云代码_python如何做词云

词云已经成为当今火热的话题,究竟如何生成词云呢?本文以python生成中文词云为例,来给大家讲解如何自己作出词云。

5cff3c276be1a785.jpg

python生成中文词云需要的两个Python类库:

jieba:中文分词分词工具

wordcloud:Python下的词云生成工具

代码组成简介

代码部分来源于其他人的博客,但是因为bug或者运行效率的原因,我对代码进行了较大的改变

代码第一部分,设置代码运行需要的大部分参数,你可以方便的直接使用该代码而不需要进行过多的修改

第二部分为jieba的一些设置,当然你也可以利用isCN参数取消中文分词

第三部分,wordcloud的设置,包括图片展示与保存##Use the code by comment ##

关于该程序的使用,你可以直接读注释在数分钟内学会如何使用它

# - * - coding: utf - 8 -*-

from os import path

from scipy.misc import imread

import matplotlib.pyplot as plt

import jieba

# jieba.load_userdict("txt\userdict.txt")

# 添加用户词库为主词典,原词典变为非主词典

from wordcloud import WordCloud, ImageColorGenerator

# 获取当前文件路径

# __file__ 为当前文件, 在ide中运行此行会报错,可改为

# d = path.dirname('.')

d = path.dirname(__file__)

stopwords = {}

isCN = 1 #默认启用中文分词

back_coloring_path = "img/lz1.jpg" # 设置背景图片路径

text_path = 'txt/lz.txt' #设置要分析的文本路径

font_path = 'D:\Fonts\simkai.ttf' # 为matplotlib设置中文字体路径没

stopwords_path = 'stopwords\stopwords1893.txt' # 停用词词表

imgname1 = "WordCloudDefautColors.png" # 保存的图片名字1(只按照背景图片形状)

imgname2 = "WordCloudColorsByImg.png"# 保存的图片名字2(颜色按照背景图片颜色布局生成)

my_words_list = ['路明非'] # 在结巴的词库中添加新词

back_coloring = imread(path.join(d, back_coloring_path))# 设置背景图片

# 设置词云属性

wc = WordCloud(font_path=font_path, # 设置字体

background_color="white", # 背景颜色

max_words=2000, # 词云显示的最大词数

mask=back_coloring, # 设置背景图片

max_font_size=100, # 字体最大值

random_state=42,

width=1000, height=860, margin=2,# 设置图片默认的大小,但是如果使用背景图片的话,那么保存的图片大小将会按照其大小保存,margin为词语边缘距离

)

# 添加自己的词库分词

def add_word(list):

for items in list:

jieba.add_word(items)

add_word(my_words_list)

text = open(path.join(d, text_path)).read()

def jiebaclearText(text):

mywordlist = []

seg_list = jieba.cut(text, cut_all=False)

liststr="/ ".join(seg_list)

f_stop = open(stopwords_path)

try:

f_stop_text = f_stop.read( )

f_stop_text=unicode(f_stop_text,'utf-8')

finally:

f_stop.close( )

f_stop_seg_list=f_stop_text.split('\n')

for myword in liststr.split('/'):

if not(myword.strip() in f_stop_seg_list) and len(myword.strip())>1:

mywordlist.append(myword)

return ''.join(mywordlist)

if isCN:

text = jiebaclearText(text)

# 生成词云, 可以用generate输入全部文本(wordcloud对中文分词支持不好,建议启用中文分词),也可以我们计算好词频后使用generate_from_frequencies函数

wc.generate(text)

# wc.generate_from_frequencies(txt_freq)

# txt_freq例子为[('词a', 100),('词b', 90),('词c', 80)]

# 从背景图片生成颜色值

image_colors = ImageColorGenerator(back_coloring)

plt.figure()

# 以下代码显示图片

plt.imshow(wc)

plt.axis("off")

plt.show()

# 绘制词云

# 保存图片

wc.to_file(path.join(d, imgname1))

image_colors = ImageColorGenerator(back_coloring)

plt.imshow(wc.recolor(color_func=image_colors))

plt.axis("off")

# 绘制背景图片为颜色的图片

plt.figure()

plt.imshow(back_coloring, cmap=plt.cm.gray)

plt.axis("off")

plt.show()

# 保存图片

wc.to_file(path.join(d, imgname2))

1559615084424111.jpg

1559615107279513.png

1559615131866357.png

总结

如果你想用该代码生成英文词云,那么你需要将isCN参数设置为0,并且提供英文的停用词表。

以上就是python如何做词云的详细内容,更多请关注php中文网其它相关文章!

article_wechat2021.jpg?1111

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值