jieba库以及文本词频统计

匿名 (未验证) 提交于 2019-12-03 00:26:01

简介

◆ jieba库是优秀的中文分词第三方库

◆ jieba库和其他的第三方库一样,在cmd中使用pip install jieba 就可以进行安装

◆ jieba最常用的函数只有一个,在下面我们会见到

jieba库的三种模式及其函数




当然,最常用的还是jieba.lcut(s),这个函数就基本上满足平时的需求了

文本词频统计实例

(1)我们先对汉字文本进行分析(采用的例子是MOOC上的文本Hamlet,如果大家需要的话,我可以上传)

# 对Hamlet进行词频分析 def gettext():     #打开文件     text=open("e:/python代码/hamlet.txt","r").read()     text=text.lower()     #将特殊符号全部换成空格     for ch in '!"#$%^&*()+_-,./:;<>?@[]{}\|~':         text=text.replace(ch,"")     return text  hamlettxt=gettext() #将字符串按空格分割成列表 words=hamlettxt.split() counts={} #以字典形式统计每个单词的出现次数 for word in words:     counts[word]=counts.get(word,0)+1 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)) # RUN-> # the        1137 # and         963 # to          736 # of          669 # you         546 # i           540 # a           527 # my          513 # hamlet      459 # in          435

(2)对中文词频进行分析(同样用到的文本为三国演义,我们对三国演义中人物出现的顺序进行统计)

# 对三国演义出场人物次数进行统计 import jieba txt = open("sanguoyanyi.txt","r",encoding="utf-8").read() words = jieba.lcut(txt) new={} #通过对程序的检查,对程序进行完善 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 == "丞相":         rword ="曹操"     else:         rword=word     # 对原来的字典new中判断是否有rword这个人,没有就返回0,     # 赋予rword键有就在原来rword所对应的值加1,并赋予rword键     new[rword]=new.get(rword,0)+1 # 排除系统中不是人名的字 exc={"将军","却说","荆州","二人","不可","不能","如此"} for word in exc:     del new[word] item=list(new.items()) item.sort(key=lambda x:x[1],reverse=True) for i in range(10):     word,count=item[i]     print("{0:<10}{1:>5}".format(word,count)) # RUN-> # 曹操         1451 # 孔明         1383 # 刘备         1253 # 关羽          784 # 张飞          358 # 商议          344 # 如何          338 # 主公          331 # 军士          317 # 吕布          300

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!