利用jieba库统计红楼梦中前十位人物出场次序
1:代码
import jieba
txt = open(‘D:\studydata\红楼梦.txt’,“r”,encoding=‘utf-8’).read()
words = jieba.lcut(txt) #将中文进行分词
excludes = {“什么”,“一个”,“我们”,“那里”,“你们”,“如今”,
“说道”,“知道”,“老太太”,“起来”,“姑娘”,“这里”,
“出来”,“他们”,“众人”,“自己”,“一面”,“太太”,
“只见”,“怎么”,“奶奶”,“两个”,“没有”,“不是”,
“不知”,“这个”,“听见”,“这样”,“进来”,“咱们”,
“告诉”,“就是”,“东西”,“平儿”,“回来”,“只是”,
“大家”,“老爷”,“只得”,“丫头”,“这些”,“不敢”,
“出去”,“所以”,“不过”,“的话”,“不好”,“姐姐”}
counts = {}
for word in words:
if len(word) == 1:
continue
elif word == ‘凤姐’ or word == ‘凤姐儿’:
rword = ‘凤姐’
else:
rword = word
counts[rword] = counts.get(rword,0) + 1
for word in excludes:
del counts[word]
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
print("《红楼梦》著作中人物出场统计(前十名)为:")
for i in range(10):
word,count = items[i]
print("{0:<10}{1:>5}".format(word,count))
2:结果截图
备注:本人没看过红楼梦,所以不太清楚excludes中的是否是人名,大家认为老爷或者平儿也是人名的话可以把excludes中的老爷和平儿删除。