问题描述】苹果公司和Pixar动画工作室的CEO Steve Jobs在斯坦福大学的毕业典礼演讲稿保存在文件“Steve Jobs.txt”,针对该文件,编写程序统计文件中出现频率最高的前20个单词,并将结果保存在同目录下的"Steve Jobs.csv"文件中。 注意:文本中有大小写,还有标点符号,和统计价值不高的停用词,需要去掉文中的标点“,.;?-:\'|”,并且删除无意义的停用词{'the','and','to','of','a','be','it','is','not','but','with','t'}
时间: 2023-08-06 11:24:12 浏览: 305
usd-unity-sdk:将Pixar的通用场景描述集成到Unity中
好的,下面是代码实现:
```python
import string
import csv
from collections import Counter
# 读取文件
with open('Steve Jobs.txt', 'r') as f:
data = f.read()
# 去除标点和停用词
punctuations = string.punctuation + '‘’“”'
stopwords = {'the', 'and', 'to', 'of', 'a', 'be', 'it', 'is', 'not', 'but', 'with', 't'}
data = ''.join([char.lower() for char in data if char not in punctuations])
words = [word for word in data.split() if word not in stopwords]
# 统计单词出现频率
word_counts = Counter(words)
top_words = word_counts.most_common(20)
# 将统计结果保存到csv文件中
with open('Steve Jobs.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['单词', '出现次数'])
for word, count in top_words:
writer.writerow([word, count])
```
这段代码首先通过`with open('Steve Jobs.txt', 'r') as f:`将文件打开并读取其中的内容,然后去除标点和停用词。接着使用`collections`模块中的`Counter`类统计每个单词出现的次数,并使用`most_common()`方法找出出现频率最高的前20个单词。最后,使用`csv`模块将统计结果写入到`Steve Jobs.csv`文件中。
阅读全文