文本词频统计,Hamlet英文词频统计以及《三国演义》人物出场统计。
时间: 2023-09-13 18:12:39 浏览: 170
Python之词频统计
好的,我可以帮你完成这些任务。
首先是文本词频统计。你需要提供文本文件,我会对其中的单词进行统计,并按照出现频率从高到低排序,输出前若干个词及其出现次数。以下是一个Python程序示例:
```python
import re
from collections import Counter
def word_count(file_path, top_n):
with open(file_path, 'r', encoding='utf-8') as f:
text = f.read()
words = re.findall(r'\b\w+\b', text.lower())
word_counts = Counter(words)
top_words = word_counts.most_common(top_n)
for word, count in top_words:
print(word, count)
file_path = 'your_file_path'
top_n = 20
word_count(file_path, top_n)
```
其中,`file_path` 为你要统计的文本文件路径,`top_n` 为你要输出的前若干个词的数量。
接下来是Hamlet英文词频统计。你可以从网上下载Hamlet全文,然后使用上述程序进行词频统计。以下是一个示例:
```python
file_path = 'hamlet.txt'
top_n = 20
word_count(file_path, top_n)
```
最后是《三国演义》人物出场统计。你需要提供《三国演义》的文本文件,并编写一个程序对其中的人物出现次数进行统计。以下是一个Python程序示例:
```python
import re
from collections import Counter
def character_count(file_path, top_n):
with open(file_path, 'r', encoding='utf-8') as f:
text = f.read()
names = re.findall(r'[\u4e00-\u9fa5]{2,4}', text)
name_counts = Counter(names)
top_names = name_counts.most_common(top_n)
for name, count in top_names:
print(name, count)
file_path = 'san-guo-yan-yi.txt'
top_n = 20
character_count(file_path, top_n)
```
其中,`file_path` 为你要统计的《三国演义》文本文件路径,`top_n` 为你要输出的前若干个人物及其出现次数的数量。请注意,这里的正则表达式仅适用于汉字人名,如果你的文本中还有其他类型的人名,需要另外进行处理。
阅读全文