Python用户评价分析:使用jieba库去除无效词并绘制柱状图

本代码使用Python的jieba库对用户评价文本进行词频统计,并绘制柱状图展示前10个高频词。代码中使用jieba库进行分词,并去除常见无效词,例如','、':'、'!'、'的'等,最终得到更准确的分析结果。

import jieba
import matplotlib.pyplot as plt

file = open('pingjia.txt', 'r', encoding='utf-8')
txt = file.read()
words = jieba.lcut(txt)
count = {}

for word in words:
    if len(word) < 1 or word == ',' or word == ':' or word == '!' or word == '的':
        continue
    else:
        count[word] = count.get(word, 0) + 1


top_words = sorted(count.items(), key=lambda x: x[1], reverse=True)[:10]  # 取出频率前10的词
x = [word[0] for word in top_words]
y = [word[1] for word in top_words]

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.title('用户评价分析')
plt.xlabel('评价')
plt.ylabel('数量')
plt.bar(x, y)
plt.show()

代码说明:

  1. 导入必要的库: jieba 库用于中文分词,matplotlib.pyplot 用于绘制柱状图。
  2. 读取文件: 使用 open() 函数打开名为 'pingjia.txt' 的文件,并使用 read() 函数读取文件内容。
  3. 分词: 使用 jieba.lcut() 函数对文本进行分词,并将分词结果存储在 words 列表中。
  4. 词频统计: 使用循环遍历分词后的 words 列表,统计每个词出现的次数,并存储在 count 字典中。
  5. 去除无效词: 在统计词频的过程中,判断词的长度是否小于1,以及是否为','、':'、'!'、'的',如果是则跳过该词。
  6. 排序并取前10个高频词: 使用 sorted() 函数对 count 字典进行排序,并使用切片操作获取前10个高频词,存储在 top_words 列表中。
  7. 绘制柱状图: 使用 matplotlib.pyplot 库绘制柱状图,横坐标为词语,纵坐标为词频。

代码改进:

  1. 去除无效词: 在词频统计的过程中直接判断是否为无效词,而不是使用循环和 del 操作,提高代码效率。
  2. 代码注释: 增加代码注释,方便理解代码逻辑。

使用说明:

  1. 将用户评价文本存储在 'pingjia.txt' 文件中。
  2. 运行代码,即可生成用户评价分析的柱状图。

总结:

本代码通过使用jieba库进行分词,并去除常见无效词,最终得到更准确的用户评价分析结果。用户可以根据自己的需求修改代码,例如修改无效词列表,或者更改柱状图的样式。

Python用户评价分析:使用jieba库去除无效词并绘制柱状图

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

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