python中只用jieba和wordcloud库制作停用表和字典的异型图词云图
时间: 2024-02-18 16:05:10 浏览: 82
好的,以下是一个Python代码示例,使用jieba和wordcloud库制作停用表和字典的异型词云图:
```python
import jieba
from wordcloud import WordCloud, ImageColorGenerator
import numpy as np
from PIL import Image
# 读取文本文件
text = open('your_text_file.txt', 'r').read()
# 读取图像文件
mask = np.array(Image.open('your_image_file.png'))
# 使用jieba进行分词
word_list = jieba.cut(text)
# 设置停用词列表
stopwords = {'的', '了', '和', '是', '在', '有', '人', '就', '不', '也', '都', '这', '我', '你', '他', '她', '我们', '你们', '他们', '她们'}
# 设置字典
word_dict = {'Python': 10, '机器学习': 8, '数据分析': 6, '编程': 4, '算法': 3, '人工智能': 2, '深度学习': 1}
# 将分词结果按空格连接成字符串,并根据停用词和字典过滤
words = ''
for word in word_list:
if word not in stopwords:
if word in word_dict:
words += (word + ' ') * word_dict[word]
else:
words += word + ' '
# 设置WordCloud对象
wc = WordCloud(background_color="white", max_words=2000, mask=mask, contour_width=3, contour_color='steelblue')
# 生成词云图
wc.generate(words)
# 提取图像颜色
image_colors = ImageColorGenerator(mask)
# 显示词云图
import matplotlib.pyplot as plt
plt.imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
plt.axis('off')
plt.show()
```
上述代码中,我们使用了jieba库进行中文分词,并设置了停用词列表和字典。在分词结果中,如果分词不在停用词列表中,就根据字典中对应的权重重复该词语。最后将分词结果按空格连接成字符串,使用WordCloud库生成异型词云图。
阅读全文