.编写程序,读取配套文件news.txt中的内容,统计出现次数最多的前10个词,绘制柱状图显示每个热词的出现次数。(柱状图)
时间: 2024-11-09 16:19:04 浏览: 14
要在Python中完成这个任务,我们可以使用`collections.Counter`来统计单词频率,然后利用`matplotlib`库绘制柱状图。假设新闻文本文件名为`news.txt`,以下是实现此功能的一个示例:
```python
import collections
import matplotlib.pyplot as plt
import re
from operator import itemgetter
# 读取文本文件
with open('news.txt', 'r', encoding='utf-8') as file:
text = file.read().lower() # 转换为小写处理
# 使用正则表达式提取单词
words = re.findall(r'\b\w+\b', text)
# 使用Counter统计单词频率
word_counts = collections.Counter(words)
# 获取出现次数最多的前10个词及其频次
top_10_words = word_counts.most_common(10)
# 对结果进行排序
sorted_top_10 = sorted(top_10_words, key=itemgetter(1), reverse=True)
# 绘制柱状图
plt.bar([word[0] for word in sorted_top_10], [count for count, word in sorted_top_10])
plt.xlabel('Words')
plt.ylabel('Frequency')
plt.title('Top 10 Most Frequent Words in news.txt')
plt.xticks(rotation=90) # 旋转轴标签以适应长词
plt.show()
```
这段代码首先读取并清洗文本,然后使用正则表达式找出所有的单词,并计算它们的出现次数。最后,它按照频率从高到低排序,并绘制出柱状图。
阅读全文