完成一个python hamlet词频统计程序并增加一个单词黑名单列表定义,在列表中的单词不在统计
时间: 2024-02-01 12:15:03 浏览: 77
以下是一个简单的 Python 代码,用于对哈姆雷特文本进行词频统计。同时,我们增加了一个单词黑名单列表,如果单词出现在该列表中,则不进行统计。
```python
# -*- coding: utf-8 -*-
from collections import Counter
blacklist = ["the", "and", "of", "to"] # 单词黑名单列表
with open("hamlet.txt", "r") as f:
text = f.read().lower()
# 将文本中的标点符号和换行符替换为空格
text = text.replace('\n', ' ').replace(',', ' ').replace('.', ' ').replace(';', ' ').replace(':', ' ').replace('!', ' ').replace('?', ' ')
# 将文本分割成单词列表
words = text.split()
# 过滤掉黑名单中的单词
filtered_words = [word for word in words if word not in blacklist]
# 统计单词频率
word_counts = Counter(filtered_words)
# 输出前20个出现频率最高的单词
for word, count in word_counts.most_common(20):
print(f"{word}: {count}")
```
在上面的代码中,我们首先定义了一个单词黑名单列表 `blacklist`,其中包含不希望被统计的单词。然后,我们打开并读取哈姆雷特文本文件 `hamlet.txt`,将其转换为小写,并将文本中的标点符号和换行符替换为空格。接下来,我们将文本分割成单词列表,在这之前我们先过滤掉黑名单中的单词。最后,我们使用 `collections.Counter` 对单词列表进行统计,并输出出现频率最高的前20个单词及其出现次数。
阅读全文