pyhton统计红楼梦人物词频
时间: 2025-05-01 15:30:42 浏览: 38
### 使用Python对《红楼梦》文本中的人物名称进行词频统计
为了实现这一目标,可以采用`jieba`库来进行分词处理,并利用`collections.Counter`来统计数据。考虑到人物名字通常由两个汉字组成,在预处理阶段应当加入自定义词典以便更精准地识别这些特定词汇[^1]。
#### 加载所需模块并准备数据源
首先导入必要的包以及加载待分析的小说文本文件和停用词表:
```python
import jieba
from collections import Counter
f = "红楼梦.txt"
sf = "停用词.txt"
# 读取文章内容用jieba库分词
with open(f, 'r', encoding='utf-8') as file:
text = file.read()
```
#### 构建个性化字典以优化分词效果
通过向`jieba`添加用户自定义词语列表(即主要角色的名字),能够提高对于专有名词解析的能力:
```python
person_names = ["贾宝玉", "林黛玉", "薛宝钗"] # 这里仅列举几个例子;实际应用时应尽可能全面收集书中重要人物名单
for name in person_names:
jieba.add_word(name)
txt = jieba.lcut(text)
```
#### 清洗数据去除无关项
接着过滤掉那些不重要的单词,比如常见的虚词或其他非实质性表达:
```python
stopwords = set(line.strip() for line in open(sf, 'r', encoding='utf-8'))
filtered_words = [word for word in txt if word not in stopwords and len(word)>1]
```
#### 统计各个人物出现次数
最后一步就是计算每个关键词在整个文档中的频率分布情况了:
```python
counter = Counter(filtered_words).most_common()
print(counter[:20]) # 输出前二十高频次条目作为样例展示
```
上述过程展示了如何基于Python编程语言完成针对古典文学作品内指定实体对象的量化研究工作流程[^2]。
阅读全文
相关推荐

















