Python 使用 Jieba 和 WordCloud 生成《红楼梦》词云

本教程演示如何使用 Python 的 Jieba 和 WordCloud 库生成《红楼梦》词云图。

代码:

import jieba
from wordcloud import WordCloud

excludes = {'什么', '一个', '我们', '那里', '你们', '如今',
            '说道', '知道', '老太太', '起来', '姑娘', '这里',
            '出来', '他们', '众人', '自己', '一面', '太太',
            '只见', '怎么', '奶奶', '两个', '没有', '不是',
            '不知', '这个', '听见', '咱们', '就是', '进来', '东西'}
f = open(r'D:\A_downloads\实验2:《红楼梦》\红楼梦.txt', 'r', encoding='utf-8')
txt = f.read()
f.close()
words = jieba.lcut(txt)  # 中文分词函数,用于精确模式,即将字符串分割成等量的中文词组,返回结果是列表类型
counts = {}
for word in words:
    if len(word) == 1:  # 排除单个字符的分词结果
        continue
    else:
        counts[word] = counts.get(word, 0) + 1  # get方法,键存在则返回相应值,否则返回0
for word in excludes:
    del (counts[word])  # 如果含有excludes里的单词,删掉
items = list(counts.items())  # items方法,返回所有的键值对
items.sort(key=lambda x: x[1], reverse=True)  # 按降序排序
for i in range(8):
    word, count = items[i]
    print('{0:<5}{1:>5}'.format(word, count))

# 生成词云
newtxt = ''.join(words)
wordcloud = WordCloud(background_color='white',
                      width=800,
                      height=600,
                      max_words=200,
                      max_font_size=80,
                      stopwords=excludes,
                      ).generate(newtxt)
wordcloud.to_file(r'D:\A_downloads\实验2:《红楼梦》')  # 生成词云图片,图片一般与此程序文件在同一个目录里

常见问题及解决方法:

  • 没有结果是为什么?

    • 可能是因为没有安装 jiebawordcloud 库,需要先通过 pip install jieba wordcloud 安装这两个库。
    • 检查文件路径是否正确以及文件编码是否与程序中指定的一致。
    • 如果文本文件过大,可能需要等待较长时间才能生成词云。

更多信息:

注意:

  • 本教程使用的是 Python 3。
  • 需要将代码中的文件路径修改为您的文件路径。
  • 您可以根据需要修改参数,例如 stopwordsmax_wordsmax_font_size
Python 使用 Jieba 和 WordCloud 生成《红楼梦》词云

原文地址: https://www.cveoy.top/t/topic/mrpr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录