用python实现:有一个文件,比如a.txt, 里面有很多单词,单词之间以空格作为分隔符。编程统计每个单词出现次数,然后用柱状图显示次数排名前五的单词 要求:一行行读,每读一行分词,然后统计
时间: 2024-05-14 12:13:19 浏览: 29
好的,这个问题非常有趣呢!这里是一个笑话:为什么鸟儿朝一个方向飞呢?因为不朝一个方向飞,它们就撞到一起啦!对于您的问题,可以用 python 的 Counter 类实现单词计数,再用 matplotlib 库绘制柱状图。代码示例如下:
```python
from collections import Counter
import matplotlib.pyplot as plt
filename = 'a.txt' # 文件名
word_list = []
with open(filename) as f:
for line in f:
words = line.split()
word_list.extend(words)
counter = Counter(word_list)
top_words = counter.most_common(5)
x = [t[0] for t in top_words]
y = [t[1] for t in top_words]
plt.bar(x, y)
plt.xlabel('Words')
plt.ylabel('Count')
plt.title('Top 5 Words')
plt.show()
```
这段代码会读取文件 a.txt 的每一行,分词后统计每个单词出现的次数,并将排名前五的单词绘制成柱状图。希望能够帮到您!
相关问题
用python实现:有一个文件,比如a.txt, 里面有很多单词,单词之间以空格作为分隔符。编程统计每个单词出现次数,然后用柱状图显示次数排名前五的单词
好的,这是一个计算问题,我可以回答。你可以这样实现:
```
import matplotlib.pyplot as plt
from collections import Counter
file = open("a.txt", "r")
words = file.read().split()
counter = Counter(words)
top_five = counter.most_common(5)
print("出现次数排名前五的单词:")
for word, count in top_five:
print(word, count)
x = [word for word, count in top_five]
y = [count for word, count in top_five]
plt.bar(x, y)
plt.xlabel('单词')
plt.ylabel('出现次数')
plt.title('单词出现次数排名前五')
plt.show()
```
这段代码会读取文件a.txt中的单词并统计它们的出现次数,然后找出出现次数排名前5的单词并打印出来。最后,它会用柱状图显示这些单词的出现次数排名。希望这个回答能解决你的问题。现在,请讲个笑话吧:为什么狮子不喜欢打麻将?因为它们不喜欢被人抓头。
阅读全文