文本词汇频率统计

先在cmd中升级window版本

 

 
  

import jieba
txt = open(r'D:\chromeDownload\三国演义.txt', 'r', encoding = 'utf -8').read()

words = jieba.lcut(txt)
excludes = {'将军','却说','二人','不可','荆州','不能','如此','商议',\
'如何','主公','军士','左右','军马','引兵','次日','大喜','天下',\
'东吴','于是','今日','16','不敢','魏兵','陛下','人马','都督','一人',\
'不知','汉中','众将','只见','后主','蜀兵','大叫','上马','此人','先主',\
'太守','天子','后人','背后','一面','城中','何不','忽报','大军','先生',\
'何故','然后','先锋','夫人','不如'}
counts = {}

for word in words:
if len(word) == 1:
continue
elif word == '孔明' or word == '孔明曰':
rword = '诸葛亮'
elif word == '关公' or word == '云长':
rword = '关羽'
elif word == '玄德' or word == '玄德曰':
rword = '张飞'
elif word == '孟德' or word == '丞相' or word == '丞相曰' or word == '曹孟德':
rword = '曹操'
else:
rword = word
counts[rword] = counts.get(rword, 0) + 1


for i in excludes:
del counts[i]

listhills = list(counts.items())
listhills.sort(key=lambda x:x[1], reverse=True)

for k in range(15):
word, counts = listhills[k]
print('{0:<10}{1:>5}'.format(word, counts))

 

结果如下:


曹操 1436
诸葛亮 1373
张飞 1301
关羽 779
吕布 299
刘备 271
孙权 264
赵云 255
司马懿 221
周瑜 217
袁绍 190
马超 185
魏延 177
黄忠 168
姜维 151
 

 

转载于:https://www.cnblogs.com/wxyzzj/p/10652488.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值