python中哪个库用于中文分词_python使用jieba库进行中文分词

python使用jieba库进行中文分词,我们可以吧一篇中文文章里面的词语提取出来进行分析,这时候我们可以采用jieba库,python2和python3都支持,目前jieba库支持3种分词模式:精确模式、全模式、搜索引擎模式,并且支持繁体分词,还支持自定义词典。

使用之前我们要先安装jieba库pip install jieba

然后导入jieba库import jieba

import jieba.posseg as pseg #词性标注

import jieba.analyse as anls #关键词提取

分词

我们首先看下精确模式、全模式、搜索引擎模式的输出情况,默认是精确模式。jieba.cut 方法接受两个输入参数: 第一个参数为需要分词的字符串,cut_all参数用来控制是否采用全模式,默认是精确模式。

jieba.cut_for_search方法接受一个参数:需要分词的字符串,该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细。

jieba.cut以及jieba.cut_for_search返回的结构都是一个可迭代的generator,可以使用for循环来获得分词后得到的每一个词语(unicode),也可以用list(jieba.cut(...))转化为list# 全模式

seg_list = jieba.cut("我要进行关键词提取", cut_all=True)

print("【全模式】:" + "/ ".join(seg_list))

# 精确模式

seg_list = jieba.cut("我要进行关键词提取", cut_all=False)

print("【精确模式】:" + "/ ".join(seg_list))

#【全模式】:我/ 要/ 进行/ 关键/ 关键词/ 提取

#【精确模式】:我要/ 进行/ 关键词/ 提取

#【搜索引擎模式】:我要/ 进行/ 关键/ 关键词/ 提取

精确模式,返回的是一个生成器,这对大数据量数据的分词十分重要。

全模式,可见全模式就是把文本分成尽可能多的词。

获取词性

我们还可以通过jiaba这个库把词性进行区分,比如动词,名词等import jieba.posseg as psg

seg_list = psg.cut("我要进行关键词提取")

print([(s.word, s.flag) for s in seg_list])

# [('我', 'r'), ('要', 'v'), ('进行', 'v'), ('关键词', 'n'), ('提取', 'v')]

我们还可以提取动词或者名词,我们来提取下里面的动词import jieba.posseg as psg

seg_list = psg.cut("我要进行关键词提取")

print([(s.word, s.flag) for s in seg_list if s.flag.startswith('v')])

获取出现次数最多的词语from collections import Counter

c = Counter("我要进行关键词提取,我要进行学习,好好学习,天天向上。").most_common(3)

print(c)

添加字典增加准确性

我们可以指定自己自定义的词典,以便包含jieba词库里没有的词。虽然jieba有新词识别能力,但是自行添加新词可以保证更高的正确率。

用法: jieba.load_userdict(file_name) # file_name为自定义词典的路径

并行分词

在文本数据量非常大的时候,为了提高分词效率,开启并行分词就很有必要了。jieba支持并行分词,基于python自带的multiprocessing模块,但要注意的是在Windows环境貌似不支持。

用法:

开启并行分词模式,参数为并发执行的进程数 jieba.enable_parallel(5)

关闭并行分词模式 jieba.disable_parallel()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"哑哈"中文分词,更快或更准确,由你来定义。通过简单定制,让分词模块更适用于你的需求。 "Yaha" You can custom your Chinese Word Segmentation efficiently by using Yaha 基本功能: 精确模式,将句子切成最合理的词。 全模式,所有的可能词都被切成词,不消除歧义。 搜索引擎模式,在精确的基础上再次驿长词进行切分,提高召回率,适合搜索引擎创建索引。 备选路径,可生成最好的多条切词路径,可在此基础上根据其它信息得到更精确的分词模式。 可用插件: 正则表达式插件 人名前缀插件 地名后缀插件 定制功能。分词过程产生4种阶段,每个阶段都可以加入个人的定制。 附加功能: 新词学习功能。通过输入大段文字,学习到此内容产生的新老词语。 获取大段文本的关键字。 获取大段文本的摘要。 支持用户自定义词典 Algorithm 核心是基于查找句子的最大概率路径来进行分词。 保证效率的基础上,对分词的各个阶段进行定义,方便用户添加属于自己的分词方法(默认有正则,前缀名字与后缀地名)。 用户可自定义使用动态规划或Dijdstra算法得到最优的一条或多条路径,再次可根据词性(科大ictclas的作法)等其它信息得获得最优路径。 使用“最大熵”算法来实现对大文本的新词发现能力,很适合使用它来创建自定义词典,或在SNS等场合进行数据挖掘的工作。 相比已存在的结巴分词,去掉了很消耗内存的Trie树结构,以及新词发现能力并不强的HMM模型(未来此模型可能当成一个备选插件加入到此模块)。 目前状态 以上提到的核心部分以及基础功能都已得到实现。不过一些细节正在实现,目前还未发布版本。 一些片段的代码可以从我的代码分享得到:http://www.oschina.net/code/list_by_user?id=1180874 标签:Yaha  中文分词
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值