红楼梦人物出场统计
Part1 Material
小说下载地址:链接:https://pan.baidu.com/s/140JKuuCENO87KjY3if1QkQ 密码:ttrt
Part2 Code
代码
#e6.6RedDreamofMansions.py
import jieba
#根据路径以utf-8的格式读取文件内容
txt = open("C:\\Users\Administrator\Desktop\\曹雪芹-红楼梦utf-8.txt","r",encoding='utf-8').read()
words = jieba.lcut(txt)
#排除一些不是人名的词语
excludes=['什么','一个','我们','那里','如今','你们','说道','知道','起来','姑娘','这里','出来','他们','众人','奶奶','自己','一面'
,'只见','怎么','两个','没有','不是','不知','听见','这个','这样','进来','咱们','就是','东西','告诉','回来','只是','大家',
'只得','这些','不敢','出去','所以','不过','不好','的话','一时','过来','不能','心里','今日','姐姐','太太','丫头','银子',
'如此','二人','几个','答应','这么','还有','只管','一回','说话','那边','外头','这话','打发','自然','罢了','今儿','屋里']
counts = {}
for word in words:
if len(word) == 1: #排除单个字符的分词结果
continue
else:
counts[word] = counts.get(word,0) + 1
for word in excludes:
del(counts[word])
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(20):
word,count = items[i]
print("{0:<10}{1:>5}".format(word,count))
注意:
1、需要把下载的红楼梦.txt的编码形式改为utf-8(可以通过先打开红楼梦.txt,然后另存为时改编码形式);
2、结果需要我们修改excludes,进行多次迭代,把不是人名的词语去掉。
Part3 The Result
宝玉 3784
贾母 1228
凤姐 1106
王夫人 1005
老太太 975
贾琏 670
平儿 604
袭人 581
宝钗 568
黛玉 562
老爷 535
凤姐儿 478
薛姨妈 449
探春 435
鸳鸯 430
二爷 400
贾政 348
晴雯 339
湘云 332
小丫头 289