词云分析wordcloud

jieba模块:用来切割中文的模块
pillow:python3中用来专门处理图像的模块

import re
import jieba
from PIL import Image
from wordcloud import wordcloud
import numpy as np
def gen_wordcloud(text, filename):

#1). 强调分割中有问题的词,默认分割结果不正确的词;
jieba.suggest_freq((‘微博’), True)
jieba.suggest_freq((‘热搜’), True)
##2).如果是英文字符,切割英文
#data = []
#with open(’/tmp/passwd’) as f:

#for line in f:

#result1 = re.split(r’\s|:|/’, line)
##如果item存在数据并且不是空格或者数字, 则继续进行处理;
#result2 = [item for item in result1 if not re.findall(r’\s+|\d+’, item) and item]
#data.extend(result2)

#2). 难点: 如何切割中文, jieba, lcut
result = jieba.lcut(text)
print(result)
#绘制词云
#3). 打开图片, 获取图片的数据信息;
imgObj = Image.open(’./doc/wordcloud.jpg’)
img_mask = np.array(imgObj)
#4). 创建词云对象, 设置属性
wcObj = wordcloud.WordCloud(
mask = img_mask, #数据如何填充到图片
background_color=“snow”, #北京颜色
font_path="/usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc", #如果是中文, 指定字体库(fc-list :lang=zh)
min_font_size=5, # 图片中最小的字体大小
max_font_size=50, # 图片中最小的字体大小
width=1000, #图片宽度
height=1000, #高
)
#5). 生成图片;
#词云绘制时, 默认之处理字符串类型, 怎么分隔每个单词? 必须以逗号分隔符分割
wcObj.generate(",".join(result))
wcObj.to_file(filename)

if name == ‘main’:

text = “马云曾公开表态称对钱没兴趣称其从来没碰过钱上了微博热搜”
filename = ‘doc/wcObj.png’
gen_wordcloud(text, filename)

猜你喜欢

转载自blog.csdn.net/qq_37037438/article/details/87797971