前文Python 结巴(jieba)库之花拳绣腿结巴(jieba)为优秀的中文分词第三方库https://blog.csdn.net/iprobobo/article/details/122686102业已指出,结巴(jieba)为优秀的中文分词库,功能强大,今天就拿《三国演义》来小试牛刀。
《三国演义》为中国文学史上的第一部章回小说,是历史演义小说的开山之作,中国古典四大名著之一。明清时期甚至有“第一才子书”之称。其描写了从东汉末年到西晋初年之间近百年的历史风云,诉说了魏、蜀、吴三国之间的政治和军事斗争等故事,塑造了一群叱咤风云的三国英雄人物。虽说英雄不问出处,但其出场秀还是值得研究一番的。
二话不说,上代码:
import jieba
txt=open('三国演义.txt','r',encoding='utf-8').read()
words=jieba.lcut(txt)
count={}
for word in words:
if len(word)==1:
continue
else:
count[word]=count.get(word,0)+1
items=list(count.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 count[word]
经过如此这般,新鲜出炉的十大英雄依次是:
卧龙诸葛亮稳坐头把交椅,奸雄曹操屈居第三,周郎末席,是否符合您的心理预期呢☺
完整代码
import jieba
txt=open('三国演义.txt','r',encoding='utf-8').read()
words=jieba.lcut(txt)
counts={}
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
counts[word]=counts.get(word,0)+1
ex={'将军','却说','丞相','二人','不可','荆州','不能','如此','商议','如何',\
'主公','军士','左右','军马','引兵','次日','大喜','天下','东吴','于是',\
'今日','不敢','魏兵','陛下','一人','都督','人马','不知'}
for word in ex:
del counts[word]
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
word,count=items[i]
print('{0:<10}{1:>5}'.format(word,count))
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/106963.html