三国演义人物出场次数

三国演义人物出场次数,出场顺序就不统计了,需要排除的集合太长,丞相这个词语有点问题,代码如下

import jieba
txt = open(r'c:\Users\今天还下雨\desktop\threekingdoms.txt','r',encoding='utf-8').read()
excludes = {'将军','却说','荆州','二人','不可','不能','如此','商议','如何','主公','左右','军士',\
            '军马','引兵','次日','大喜','天下','东吴','于是','今日','不敢','魏兵','陛下','不知','一人','不敢',\
            '不知','人马','都督','汉中','只见','蜀兵'}
words = jieba.lcut(txt)
counts = {}
for word in words:
    if len(word) == 1:
        continue
    elif word =='诸葛孔明' or word == '孔明曰' or word == '诸葛亮':
        rword = '孔明'
    elif word =='关公' or word == '云长':
        rword = '关羽'
    elif word =='玄德' or word == '玄德曰':
        rword = '刘备'
    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)
for i in range(30):
    word,count = items[i]
    print('{0:<10}{1:>5}'.format(word,count))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值