python统计hamlet.txt中英文单词使用频率最高的前十个单词并排序写入到sort.txt中,需排除原文大小写,单词间的间隔多样性的差异对词频统计的干扰
时间: 2024-04-30 21:18:06 浏览: 118
python实现统计文本中单词出现的频率详解
这里是一个Python程序,可以实现您的需求:
```python
import re
from collections import Counter
# 读取文件内容
with open("hamlet.txt", "r", encoding="utf-8") as f:
text = f.read()
# 统一转换为小写字母
text = text.lower()
# 提取所有单词
words = re.findall(r'\b\w+\b', text)
# 统计单词出现次数并取前十个
top_words = Counter(words).most_common(10)
# 写入文件
with open("sort.txt", "w", encoding="utf-8") as f:
for word, count in top_words:
f.write(f"{word}: {count}\n")
```
说明:
1. 首先使用 `with` 语句打开文件,读取文件内容并保存在变量 `text` 中。
2. 然后将所有字符转换为小写字母,避免大小写的干扰。
3. 使用正则表达式 `r'\b\w+\b'` 提取所有单词,其中 `\b` 表示单词的边界,`\w+` 表示一个或多个字母数字字符。
4. 使用 `Counter` 类统计单词出现次数,并使用 `most_common()` 方法取前十个。
5. 最后使用 `with` 语句打开文件,将排序后的单词列表写入到文件中。
注意,这个程序只是一个简单的例子,没有考虑一些特殊情况,比如单词中包含连字符、缩写词等。如果需要处理这些情况,需要对正则表达式进行修改。
阅读全文