制定任意英文文章的文本文件,使用pandas统计文章中每个单词出现的次数,保留数字,连字符,撇号,统计结果按照出现次数降序再按照单词字典序排序,将统计结果保存到csv文件中,并使用水平柱状图显示出现次数最多的十个单词
时间: 2023-11-28 22:09:01 浏览: 79
查找英语文章中要出现的单词,统计其个数
以下是一个例子,可以根据需要进行修改:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取文本文件
with open('example.txt', 'r') as f:
text = f.read()
# 将文本转换为小写并移除标点符号
text = text.lower()
text = text.replace('-', ' ')
text = text.replace("'", '')
text = ''.join(c for c in text if c.isalnum() or c.isspace())
# 将文本拆分为单词列表
words = text.split()
# 统计每个单词出现的次数
word_counts = {}
for word in words:
if word in word_counts:
word_counts[word] += 1
else:
word_counts[word] = 1
# 将统计结果转换为DataFrame并按照要求排序
df = pd.DataFrame.from_dict(word_counts, orient='index', columns=['count'])
df = df.sort_values(by=['count', df.index.name], ascending=[False, True])
# 保存统计结果到csv文件
df.to_csv('word_counts.csv')
# 绘制水平柱状图
top_words = df.head(10)
plt.barh(top_words.index, top_words['count'])
plt.xlabel('Count')
plt.ylabel('Word')
plt.title('Top 10 Words by Count')
plt.show()
```
注意,这只是一个简单的例子,实际使用时可能需要考虑更多的情况,例如处理缩写、停用词等。
阅读全文