jieba库以及文本词频统计

简介

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

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

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

jieba库的三种模式及其函数

◆ 精确模式:jieba.lcut(s)    对文本s进行分词

◆ 全局模式:jieba.lcut(s,cut_all=True)   进行分词之后存在冗余

◆ 搜索引擎模式:jieba.lcut_for_search(s)   同样进行分词之后存在冗余

◆ jieba.add_words(w)    向分词词典中增加一个单词

当然,最常用的还是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

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值