Python 模块 - jieba
安装 jieba
pip3 install jieba
jieba 支持三种分词模式:
精确模式:将句子最精确地切开,适合文本分析
全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义
搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词
jieba.cut 方法有三个参数,第一个参数为需要分词的字符串,第二个 cut_all 参数用来控制是否采用全模式,第三个 HMM 参数用来控制是否使用 HMM 模型
# -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import jieba word_list = jieba.cut("福建的地理特点是依山傍海,九成陆地面积为山地丘陵地带,被称为八山一水一分田") print("Default Mode: " + "/ ".join(word_list)) # cut_all=False 为精简模式,是默认的选项 word_list_1 = jieba.cut("福建的地理特点是依山傍海,九成陆地面积为山地丘陵地带,被称为八山一水一分田", cut_all=True) print("Full Mode: " + "/" .join(word_list_1)) # cut_all=True 为全模式
运行结果
jieba.cut_for_search 方法有两个参数,第一个参数为需要分词的字符串,第二个 HMM 参数用来控制是否使用 HMM 模型
该方法适合用于搜索引擎构建倒排索引的分词
# -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import jieba word_list_2 = jieba.cut_for_search("福建的地理特点是依山傍海,九成陆地面积为山地丘陵地带,被称为八山一水一分田") print("Search Mode: " + "/".join(word_list_2))
运行结果
jieba.cut 和 jieba.cut_for_search 返回的类型都是一个可迭代的生成器
jieba.lcut 和 jieba.lcut_for_search 返回列表类型
关键字提取
基于 TF-IDF
jieba.analyse.extract_tags 方法有三个参数,第一个参数为字符串,第二个参数 topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20,第三个参数 withWeight 为是否一并返回关键词权重值,默认值为 False,第四个参数 allowPOS 仅包括指定词性的词,默认值为空,即不筛选
# -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import jieba.analyse string = "福建的地理特点是依山傍海,九成陆地面积为山地丘陵地带,被称为八山一水一分田" a = jieba.analyse.extract_tags(string, topK=20, withWeight=False, allowPOS=0) print(a)
运行结果
基于 TextRank
jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
# -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import jieba.analyse string = "福建的地理特点是依山傍海,九成陆地面积为山地丘陵地带,被称为八山一水一分田" a = jieba.analyse.textrank(string, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v')) print(a)
运行结果
词性标注
# -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import jieba.posseg strings = jieba.posseg.cut("福建的地理特点是依山傍海,九成陆地面积为山地丘陵地带,被称为八山一水一分田") for word, flag in strings: print("%s %s" %(word, flag))
运行结果
词性列表
n 名词 nr 人名 nr1 汉语姓氏 nr2 汉语名字 nrj 日语人名 nrf 音译人名 ns 地名 nsf 音译地名 nt 机构团体名 nz 其它专名 nl 名词性惯用语 ng 名词性语素 t 时间词 tg 时间词性语素 s 处所词 (家中、门外、境内、西方……) f 方位词 v 动词 vd 副动词 vn 名动词 vshi 动词“是” vyou 动词“有” vf 趋向动词 vx 形式动词 vi 不及物动词(内动词) vl 动词性惯用语 vg 动词性语素 a 形容词 ad 副形词 an 名形词 ag 形容词性语素 al 形容词性惯用语 b 区别词 (主要、整个、所有……) bl 区别词性惯用语 z 状态词 r 代词 rr 人称代词 rz 指示代词 rzt 时间指示代词 rzs 处所指示代词 rzv 谓词性指示代词 ry 疑问代词 ryt 时间疑问代词 rys 处所疑问代词 ryv 谓词性疑问代词 rg 代词性语素 m 数词 mq 数量词 q 量词 qv 动量词 qt 时量词 d 副词 p 介词 pba 介词“把” pbei 介词“被” c 连词 cc 并列连词 u 助词 uzhe 着 ule 了 喽 uguo 过 ude1 的 底 ude2 地 ude3 得 usuo 所 udeng 等 等等 云云 uyy 一样 一般 似的 般 udh 的话 uls 来讲 来说 而言 说来 uzhi 之 ulian 连 (“连小学生都会”) e 叹词 y 语气词(delete yg) o 拟声词 h 前缀 k 后缀 x 字符串 xx 非语素字 xu 网址URL w 标点符号 wkz 左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { < wky 右括号,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { > wyz 左引号,全角:“ ‘ 『 wyy 右引号,全角:” ’ 』 wj 句号,全角:。 ww 问号,全角:? 半角:? wt 叹号,全角:! 半角:! wd 逗号,全角:, 半角:, wf 分号,全角:; 半角: ; wn 顿号,全角:、 wm 冒号,全角:: 半角: : ws 省略号,全角:…… … wp 破折号,全角:—— -- ——- 半角:--- ---- wb 百分号千分号,全角:% ‰ 半角:% wh 单位符号,全角:¥ $ £ ° ℃ 半角:$
载入词典
jieba.load_userdict(file_name), file_name 为文件类对象或自定义词典的路径
file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码
一个词占一行,每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒
例子:
创新办 3 i 云计算 5 凱特琳 nz 台中