【Python】jieba中文分词库官方文档总结

一、特点

1.四种模式

  • 精确模式: 试图将句子最精确地切开,适合文本分析;
  • 全模式: 把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  • 搜索引擎模式: 在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
  • paddle模式: 利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。paddle模式使用需安装paddlepaddle-tiny,pip install paddlepaddle-tiny==1.6.1。目前paddle模式支持jieba v0.40及以上版本。jieba v0.40以下版本,请升级jieba,pip install jieba --upgrade 。

2.支持繁体分词
3.支持自定义词典
4.MIT 授权协议

二、主要功能
1.分词
jieba.cut()
'''
参数有四个:
1. 需要分词的字符串
2. cut_all:是否采用全模式(理解全模式与精确模式)
3. HMM:是否采用HMM模型 (有兴趣的可以进一步了解其算法原理)
4. use_paddle:用来控制是否使用paddle模式下的分词模式,paddle模式采用延迟加载方式,通过enable_paddle接口安装paddlepaddle-tiny,并且import相关代码;
'''
jieba.cut_for_search() # 该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
'''
参数有两个:
1.需要分词的字符串
2.HMM:是否采用HMM模型
'''
jieba.lcut() # 类似cut(),直接返回 list
jieba.lcut_for_search() # 同上

jieba.Tokenizer(dictionary=DEFAULT_DICT) 
# 新建自定义分词器,可用于同时使用不同词典。jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射。
# 示例代码
# encoding=utf-8
import jieba

jieba.enable_paddle()# 启动paddle模式。 0.40版之后开始支持,早期版本不支持
strs=["我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]
for str in strs:
    seg_list = jieba.cut(str,use_paddle=True) # 使用paddle模式
    print("Paddle Mode: " + '/'.join(list(seg_list)))
'''
输出: Paddle Mode: 我/来到/北京清华大学
      Paddle Mode: 乒乓球/拍卖/完/了
      Paddle Mode: 中国科学技术大学
若未使用该模式时:输出为
	  Paddle Mode: 我/来到/北京/清华大学
	  Paddle Mode: 乒乓球/拍卖/完/了
	  Paddle Mode: 中国/科学技术/大学
'''
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式
'''
输出:【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
'''
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式
'''
输出:【精确模式】: 我/ 来到/ 北京/ 清华大学
'''
seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))
'''
输出:【新词识别】:他, 来到, 了, 网易, 杭研, 大厦    (此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)
'''
seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式 ===>注意与全模式是有一定区别的。
print(", ".join(seg_list))
'''
输出:【搜索引擎模式】: 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造
'''
2.添加自定义词典
jieba.load_userdict(file_name) # file_name 为文件类对象或自定义词典的路径

词典的格式为 :

词语、词频(可省略)、词性(可省略)
如:
云计算 5
李小福 2 nr
创新办 3 i
easy_install 3 eng
好用 300
韩玉赏鉴 3 nz
八一双鹿 3 nz
台中
凱特琳 nz
Edu Trust认证 2000

注:用空格隔开,顺序不可颠倒file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。

调整词典:

add_word(word, freq=None, tag=None)
del_word(word)
suggest_freq(segment, tune=True) #调节单个词语的词频,使其能够被分离出,返回值是自动计算的词频。
'''
例如:
jieba.add_word('石墨烯')
jieba.add_word('凱特琳')
jieba.del_word('自定义词')
jieba.suggest_freq(seg, True)
'''

print('/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))
'''
输出「/台/中/」/正确/应该/不会/被/切开
'''
print(jieba.suggest_freq('台中', True))
'''
输出:69
'''
print('/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))
'''
输出:「/台中/」/正确/应该/不会/被/切开
'''
3.关键词提取
  1. 基于 TF-IDF 算法的关键词抽取
  2. 基于 TextRank 算法的关键词抽取

此部分略过,详细的方法可以自行查找相关资料,TF-IDF也可以使用genism.models.TfidfModel库来实现。

4.词性标注

paddle模式词性和专名类别标签集合如下表,其中词性标签 24 个(小写字母),专名类别标签 4 个(大写字母)。

标签含义标签含义标签含义标签含义
n普通名词f方位名词s处所名词t时间
nr人名ns地名nt机构名nw作品名
nz其他专名v普通动词vd动副词vn名动词
a形容词ad副形词an名形词d副词
m数量词q量词r代词p介词
c连词u助词xc其他虚词w标点符号
PER人名LOC地名ORG机构名TIME时间
# 用法实例
import jieba
import jieba.posseg as pseg
words = pseg.cut("我爱北京天安门") #jieba默认模式
jieba.enable_paddle() #启动paddle模式。 0.40版之后开始支持,早期版本不支持
words = pseg.cut("我爱北京天安门",use_paddle=True) #paddle模式
for word, flag in words:
	print('%s %s' % (word, flag))
...
我 r
爱 v
北京 ns
天安门 ns
5.并行分词
  • 原理:将目标文本按行分隔后,把各行文本分配到多个 Python 进程并行分词,然后归并结果,从而获得分词速度的可观提升
  • 基于 python 自带的 multiprocessing 模块,目前暂不支持 Windows
  • 用法:1. jieba.enable_parallel(4) # 开启并行分词模式,参数为并行进程数 。2.jieba.disable_parallel() # 关闭并行分词模式
  • 例子 参考代码
  • 实验结果:在 4 核 3.4GHz Linux 机器上,对金庸全集进行精确分词,获得了 1MB/s 的速度,是单进程版的 3.3 倍。

以下的功能都不是太常用,需要使用的时候,可以自行查阅官方文档:链接如下:
(https://github.com/fxsjy/jieba)

6.Tokenize:返回词语在原文的起止位置
  • 注意,输入参数只接受 unicode
  • 默认模式
  • 搜索模式
  • 引用: from jieba.analyse import ChineseAnalyzer
  • 用法示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值