读取存储《哈姆雷特》英文剧本的文件,分析统计其中单词出现的频率
时间: 2024-02-25 19:57:25 浏览: 33
好的,这是一个非常好的问题。我可以用Python编写一个程序来完成这个任务。以下是我的建议:
1. 首先,我们需要读取《哈姆雷特》英文剧本的文件,并将其存储为字符串。我们可以使用Python自带的open函数来打开文件,并使用read函数来读取文件内容。
2. 接下来,我们需要将读取到的内容进行预处理,将其中的标点符号、换行符等去除,并将所有的单词转换为小写形式。这可以使用Python内置的字符串操作函数来完成。
3. 接下来,我们可以使用Python的split函数将字符串分割为单词列表。然后,我们可以使用Python的Counter函数,快速统计每个单词出现的次数。
4. 最后,我们可以将统计结果按照单词出现的频率进行排序,并输出前几个出现频率最高的单词。
下面是代码示例:
```python
from collections import Counter
def word_count(file_path, num):
# 读取文件内容
with open(file_path, 'r') as f:
text = f.read()
# 预处理文本
text = text.lower()
text = text.replace('\n', ' ')
text = ''.join(c for c in text if c.isalpha() or c == ' ')
# 分割为单词列表
words = text.split()
# 统计单词出现次数
word_count = Counter(words)
# 按照出现次数排序
word_count = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
# 输出前num个单词及其出现次数
for i in range(num):
print(word_count[i])
# 示例调用
word_count('hamlet.txt', 10)
```
注意,这里我们假设《哈姆雷特》英文剧本的文件名为'hamlet.txt',并输出出现频率前10的单词。你可以根据你的实际需求进行修改。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)