python西游记结巴分词、词云图
时间: 2024-02-10 15:07:17 浏览: 147
为了进行西游记的结巴分词和词云图生成,我们需要安装 jieba 和 wordcloud 库。可以使用以下命令进行安装:
```shell
pip install jieba
pip install wordcloud
```
接下来,我们可以使用以下代码进行西游记的结巴分词和词云图生成:
```python
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取西游记文本
with open('西游记.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 对文本进行结巴分词
words = jieba.lcut(text)
# 去除停用词
stopwords = [',', '。', '!', '?', '、', ':', ';', '“', '”', '(', ')', '【', '】', '的', '了', '和', '是', '就', '都', '而', '及', '与', '也', '在', '不', '有', '这', '他', '她', '它', '他们', '她们', '它们', '我们', '你们', '您', '我', '到', '去', '来', '回', '上', '下', '左', '右', '前', '后', '中', '里', '外', '个', '位', '些', '多', '少', '年', '月', '日', '时', '分', '秒', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '百', '千', '万']
words = [word for word in words if word not in stopwords]
# 统计人物出现频率
characters = {}
for i in range(len(words)-1):
if words[i] == '孙悟空':
if words[i+1] in characters:
characters[words[i+1]] += 1
else:
characters[words[i+1]] = 1
# 生成词云图
wc = WordCloud(background_color='white', font_path='msyh.ttc', width=800, height=600)
wc.generate_from_frequencies(characters)
plt.imshow(wc)
plt.axis('off')
plt.show()
```
上述代码中,我们首先读取了西游记的文本文件,并使用 jieba 库对文本进行了结巴分词。然后,我们去除了停用词,只保留了有意义的词语。接着,我们统计了孙悟空后面出现的人物,并将其出现频率存储在了一个字典中。最后,我们使用 wordcloud 库生成了词云图,并将其显示出来。
阅读全文