给出代码,在给出一些需要保留的词使用jieba库去除其他的词,用于生成词云
时间: 2023-12-12 14:02:35 浏览: 56
词云的生成代码
下面是一个示例代码,可以保留指定的词汇,去除其他的词,用于生成词云。
```python
import jieba
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文件
with open('input.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 指定需要保留的词
keep_words = ['Python', '机器学习', '深度学习', '人工智能']
# 使用jieba库进行分词
words = jieba.cut(text)
# 去除停用词和非指定的词汇
stopwords = ['的', '了', '是', '在', '和', '有', '我', '不', '人', '这', '他', '也', '就', '是', '说', '到', '着']
words = [word for word in words if word not in stopwords and word in keep_words]
# 统计单词频率
word_count = Counter(words)
# 生成词云
wordcloud = WordCloud(background_color="white", width=1000, height=800).generate_from_frequencies(word_count)
# 显示词云
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
```
在上述代码中,我们首先读取指定的文件,然后指定需要保留的词汇。在分词时,我们去除了停用词和不在保留词汇列表中的词汇。最后,我们使用Counter()函数统计单词频率,并生成词云。
需要注意的是,如果需要保留的词汇较多,可以将keep_words列表改为一个集合,这样可以提高判断是否需要保留的效率。例如:
```python
keep_words = {'Python', '机器学习', '深度学习', '人工智能'}
```
这样,我们就可以使用jieba库去除指定的词汇以外的单词,生成自定义的词云图像。
阅读全文