0
点赞
收藏
分享

微信扫一扫

《三国演义》与结巴(jieba)的碰撞

        前文业已指出,结巴(jieba)为优秀的分词库,功能强大,今天就拿它来小试牛刀。

        《三国演义》为中国文学史上的第一部章回小说,是历史演义小说的开山之作,中国古典四大名著之一。明清时期甚至有“第一才子书”之称。其描写了从东汉末年到西晋初年之间近百年的历史风云,诉说了魏、蜀、吴三国之间的政治和军事斗争等故事,塑造了一群叱咤风云的三国英雄人物。虽说英雄不问出处,但其出场秀还是值得研究一番的。

        二话不说,上代码:

import jieba

txt=open('三国演义.txt','r',encoding='utf-8').read()
words=jieba.lcut(txt)
counts={}
for word in words:
    if len(word)==1:
        continue
    else:
        counts[word]=counts.get(word,0)+1
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)

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

        运行结果:

         可见结巴很聪明但也难免机械,还没有那么AI,不能智能识别同一人物的不同身份和角色,还需要不断打磨(降噪)升级:

for word in words:
    if len(word)==1:
        continue
    elif word=='孔明' or word=='孔明曰':
        word='诸葛亮'
    elif word=='关公' or word=='云长':
        word='关羽'    
    elif word=='玄德' or word=='玄德曰':
        word='刘备'
    else:
        word=word
ex={'将军','却说','丞相','二人','不可','荆州','不能','如此','商议','如何',\
    '主公','军士','左右','军马','引兵','次日','大喜','天下','东吴','于是',\
    '今日','不敢','魏兵','陛下','一人','都督','人马','不知'}
for word in ex:
    del counts[word]

        经过如此这般,出场的十大英雄依次是:

         卧龙诸葛亮稳坐头把交椅,奸雄曹操屈居第三,周郎末席,是否符合您的心理预期呢?

举报

相关推荐

0 条评论