所需用到的库:
- jieba库
- matplotlib库
继上一篇博客“Python统计高频词”
上一篇链接:
Python快速统计高频词
这次多出一个用于可视化的‘matplotlib’库
也正是这一个matplotlib库,苦恼了我近半个月。最后,终于找到了正确安装的方法:
1.点击File
2.点击Settings
3.点击左侧Python Interpreter后
点击右侧 +键
4.输入matplotlib搜索,并安装即可。
值得一提的是,如果不想像我一样,苦恼很久的话,就勾选右下角的Specify version
选择一个低一点的版本
不然的话,可能会运行报错,还需要重新安装
重新安装也很简单,在那个+下面的那个-选中需要删掉的库点击减号即可
找到合适的很重要哦
安装完成之后,基于上次高频词的经验,将统计出来的高频词绘制成一个扇形图即可。
上代码:
import jieba # 调用jieba库
import matplotlib.pyplot as plt # 调用matplotlib库(通用设置)
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置正常显示符号
plt.rcParams['axes.unicode_minus'] = False
f_name = '../材料/星戒.txt' # line5到line22是高频词统计阶段,上篇有讲到过
with open(f_name, encoding='utf-8')as a:
b = a.read()
words = jieba.lcut(b)
count = {}
for word in words:
if len(word) < 2:
continue
else:
count[word] = count.get(word, 0)+1
list1 = list(count.items())
list1.sort(key=lambda x: x[1], reverse=True)
list2 = [] # 用于储存10大高频词的所占比
for a in range(10):
sun = 0.0
for i in range(10):
word, number = list1[i]
print("关键字:{:-<10}频次:{:+>8}".format(word, number))
sun = number+sun # 统计10大高频词的次数总和
word, number = list1[a]
list2.append(number/sun)
list3 = [] # 储存10大词汇
for b in range(10):
word, number = list1[b]
list3.append(word)
plt.title("高频词占比表") # 添加图表标题
plt.pie(x=list2, labels=list3, autopct='%.2f%%') # 绘制扇形图
plt.show() # 输出扇形图即可