3.《哈姆雷特》是莎士比亚的一部经典悲剧作品。请编写程序统计hamlet.txt 中出现频率最 高的前10个单词,并将结果用文件名"hamlet 词频txt”保存在同目录下。中
时间: 2023-06-14 14:06:51 浏览: 183
以下是 Python 代码实现:
```python
# 打开文件并读取文本内容
with open('hamlet.txt', 'r') as f:
text = f.read()
# 将文本转换为小写并分割成单词列表
words = text.lower().split()
# 统计每个单词的出现次数
word_count = {}
for word in words:
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
# 按照单词出现次数排序,取出前10个单词
top_words = sorted(word_count.items(), key=lambda x:x[1], reverse=True)[:10]
# 将结果保存到文件
with open('hamlet词频.txt', 'w') as f:
for word, count in top_words:
f.write(f'{word}: {count}\n')
```
注意,这里只是简单地将文本按照空格分割成单词,因此可能存在一些标点符号或特殊字符被误认为是单词的情况。如果需要更精确的处理,可以使用正则表达式或其他文本处理工具。
相关问题
python统计hamlet.txt中英文单词使用频率最高的前十个单词并排序写入到sor
你可以使用Python中的collections库来实现这个功能。以下是代码示例:
```python
import re
from collections import Counter
# 读取文件内容
with open('hamlet.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用正则表达式匹配单词
words = re.findall(r'\b\w+\b', text)
# 统计单词出现次数
word_count = Counter(words)
# 获取使用频率最高的前十个单词
top_words = word_count.most_common(10)
# 写入文件
with open('sort.txt', 'w', encoding='utf-8') as f:
for word, count in top_words:
f.write(f'{word}\t{count}\n')
```
这个代码会读取文件`hamlet.txt`中的内容,并使用正则表达式匹配出所有的单词。然后使用collections库中的Counter类统计每个单词出现的次数。最后获取使用频率最高的前十个单词,并将它们写入到文件`sort.txt`中,每行一个单词,格式为`单词\t出现次数`。
请统计hamlet.txt文件中出现的英文单词情况,统计并输出出现最多的前n个单词
为了统计 "hamlet.txt" 文件中出现的英文单词,并输出出现次数最多的前 n 个单词,你可以按照以下步骤操作:
1. 首先,你需要读取文本文件的内容。这通常涉及到打开文件、逐行读取内容,并将每行分割成单词列表。
2. 对于每个单词,需要将其转换为小写(因为大小写不影响单词计数),然后去掉标点符号或其他非字母字符。可以使用正则表达式来进行这个过程。
3. 创建一个字典(在 Python 中是 `collections.Counter` 或者简单的 Python 字典),用于存储每个单词及其出现的次数。
4. 遍历处理过的单词列表,更新字典中的计数。
5. 排序字典,找出出现次数最多的前 n 个单词。你可以使用 `most_common()` 函数来完成这个任务,它会返回一个包含元组(单词,出现次数)的列表,按出现次数降序排列。
6. 最后,打印出结果。
下面是一个简化的 Python 示例代码片段,假设 n 已经被赋予了一个值:
```python
import re
from collections import Counter
# 指定文件路径
filename = 'hamlet.txt'
# 打开文件并读取内容
with open(filename, 'r', encoding='utf-8') as file:
text = file.read().lower()
# 使用正则表达式提取单词
words = re.findall(r'\b\w+\b', text)
# 统计词频并获取最常出现的前 n 个单词
word_counts = Counter(words)
top_n_words = word_counts.most_common(n)
# 输出结果
for word, count in top_n_words:
print(f"{word}: {count}")
```
阅读全文
相关推荐
















