1、实验内容 指定任意英文文章的文本文件(本次实验使用“Youth.txt”),使用pandas统计文章中每个单词出现的次数, 单词统计时,保留形如*60”的数字、如“self-distrust”中间的连字符、形如isn '+”中间的撇号, 统计结果先按照章奇出现次数降序再按照单词字典序排序,将统计结巢保存到cs文件“Youth.csv”中, 并使用水平程状图显宗出现次数最多的10个单词。
时间: 2024-02-05 15:11:34 浏览: 79
以下是实现该任务的代码:
```python
import pandas as pd
import re
# 读取文本文件
with open('Youth.txt', 'r') as f:
text = f.read()
# 使用正则表达式分割文本并去除标点符号
words = re.findall(r'\b\w+\b', text)
# 统计单词出现次数
word_counts = {}
for word in words:
word = re.sub(r'^\d+$', '*', word) # 将形如*60的数字替换为*
word = re.sub(r'\b-\b', '', word) # 去除连字符
word = re.sub(r"isn'", "isn", word) # 将isn '+替换为isn
word_counts[word] = word_counts.get(word, 0) + 1
# 将统计结果转化为DataFrame并按照出现次数和单词字典序排序
df = pd.DataFrame(list(word_counts.items()), columns=['word', 'count'])
df = df.sort_values(['count', 'word'], ascending=[False, True])
# 将统计结果保存到csv文件中
df.to_csv('Youth.csv', index=False)
# 显示出现次数最多的10个单词
top10 = df.head(10)
top10.plot(kind='barh', x='word', y='count', legend=False)
```
运行以上代码后,会生成一个名为`Youth.csv`的csv文件,其中包含每个单词出现的次数。同时,会显示出现次数最多的10个单词的水平柱状图。
阅读全文