Python用户评价分析:使用jieba库去除无效词并绘制柱状图
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()
代码说明:
- 导入必要的库:
jieba库用于中文分词,matplotlib.pyplot用于绘制柱状图。 - 读取文件: 使用
open()函数打开名为 'pingjia.txt' 的文件,并使用read()函数读取文件内容。 - 分词: 使用
jieba.lcut()函数对文本进行分词,并将分词结果存储在words列表中。 - 词频统计: 使用循环遍历分词后的
words列表,统计每个词出现的次数,并存储在count字典中。 - 去除无效词: 在统计词频的过程中,判断词的长度是否小于1,以及是否为','、':'、'!'、'的',如果是则跳过该词。
- 排序并取前10个高频词: 使用
sorted()函数对count字典进行排序,并使用切片操作获取前10个高频词,存储在top_words列表中。 - 绘制柱状图: 使用
matplotlib.pyplot库绘制柱状图,横坐标为词语,纵坐标为词频。
代码改进:
- 去除无效词: 在词频统计的过程中直接判断是否为无效词,而不是使用循环和
del操作,提高代码效率。 - 代码注释: 增加代码注释,方便理解代码逻辑。
使用说明:
- 将用户评价文本存储在 'pingjia.txt' 文件中。
- 运行代码,即可生成用户评价分析的柱状图。
总结:
本代码通过使用jieba库进行分词,并去除常见无效词,最终得到更准确的用户评价分析结果。用户可以根据自己的需求修改代码,例如修改无效词列表,或者更改柱状图的样式。
原文地址: https://www.cveoy.top/t/topic/n0f3 著作权归作者所有。请勿转载和采集!