中文分词库jieba使用

一 分词原理

利用中文词库,确定汉字之间的相关概率,将汉字件概率大的组成词组,形成分词结果。另外,在一些情况下,需要自定词组时,也可以自行定义。

二 jieba库的使用

jieba库分词有三种模式:精确模式,全模式和搜索引擎模式
精确模式:

  1. 精确模式:把文本精确分开,不存在冗余单词
  2. 全模式:把文本中所有可能的词扫描出来,存在冗余
  3. 搜索引擎模式:在精确模式基础上,对长词再次拆分

常用函数

函数描述
jieba.lcut(s)精确模式,返回一个列表类型的分词结果
jieba.lcut(s,cut_all=True)返回全模式列表分词结果
jieba.cut(s,cut_all=False)返回的是一个迭代器。参数cut_all是bool类型,默认为False,即精确模式,当为True时,则为全模式
jieba.lcut_for_search(s)返回搜索引擎模式下的列表分词结果
jieba.addword(w)向分词词典中添加新词

三 实例

hamlet
#读取文件
def getText(filepath):
    txt = open(filepath,'r').read()
    txt = txt.lower()
    for ch in '!""@#$%&*()+-,./;:<=>[\\]^_{|}~':
        txt  = txt.replace(ch,' ')
    return txt
#词频统计
def item_sort(txt):
    words = txt.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)
    return items

Hamlet = getText('./Hamlet.txt')
item_sort(Hamlet)
sentence = '一个超过5000万人关注的大项目,您参加了吗?央视新闻新媒体推出武汉火神山、雷神山医院建设现场24小时不间断直播,短短几天时间吸引无数关心医院建设的网友围观。其中最受广大网友关注的火神山两路镜头对准的正是中建三局三公司承建区域,截至30日13:50,在看人数已突破5000万。'

# 获取分词
seg_list = jieba.cut(sentence,cut_all=False)
print('/'.join(seg_list))

在这里插入图片描述

关键词提取

于此同时,jieba还提供了一些封装好的算法,可用于文本分析

textrank提取关键词

import jieba.analyse
jieba.analyse.textrank(string,topK=20,withWeight=True,allowPOS())

参数说明
string待处理语句
topK关键词个数
withWeight是否返回权重值,默认为False
allowPOS()默认为空,可以用于限制返回关键词的词性
keywords = jieba.analyse.textrank(text,topK=20,withWeight=True,allowPOS('n','nr','ns'))
for item in keywords:
    print(item[0],item[1])

利用TF-IDF提取关键词

TF:term frequency 词频,即单词在文档出现的次数
IDF: inverse document frequency 逆向文档率,单词在所有文档中的出现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import jieba.analyse
keywords = jeiba.analyse.extract_tags(text,topK=20,withWeight=True,allowPOS('n','nr','ns')
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值