您的位置:首页 > 编程语言 > Python开发

Python中文分词包:jieba分词

2018-03-17 17:12 1601 查看
一、 基本功能

import jieba

jieba._pcut(str), 生成的结果未做词性标注

jieba.posseg.cut(str,HMM=False)

生成的结果已做词性标注,HMM为隐马尔科夫模型,用于未登陆词(在词典中未出现过)的识别

二、词库更新

(重新加载后失效,如需永久更改,可更换词典文件或者在现有词典文件中编辑更改)

1)增加自定义词 :jieba.add_word(str,tag=” “)

若jieba默认的词典中存在自定义词语,则原词典中的词语将会替换成最新的,tag标记生效。

2)增加自定义词典:jieba.load_userdict(path)

字典内容格式如下:

真好 100 adg

香格里拉 3 n

注意:源码中自定义tag提取规则如下:re_userdict = re.compile(‘^(.+?)( [0-9]+)?( [a-z]+)?$’, re.U)

即:tag只能是小写英文,词频只能是数字

3)更改分词的主词典:jieba.set_dictionary(dict_path)

说明:词库更新操作均会改变jieba词库,词库重载后失效。jieba分词原则:采用词频统计计算得分最高者,为最终分词结果。

计算公式如下:

输入文本:S, 词典总词频:N(常量),单个词语的词频:P(A)

1)S = A+B+C+D 分词概率:p1= P(A)*P(B)*P(C)*P(D)/N*N*N*N

2) S = A +BC+D 分词概率:p2= P(A)*P(BC)*P(D)/N*N*N

因此,字典新增词语时,词频设置基于此公式即可。

4)新功能

特征词抽取(根据词频统计(tf-idf算法))

(1)jieba.analyse.extract_tags(text) 返回结果为一个list

(2)非windows系统下的并行分词

jieba.enable_parallel(4) 参数4代表进程数,默认为关闭状态

(3)Tokenize:返回词语在原文的起始位置

注意:该方法只接收unicode编码状态下的str

5)词典延迟加载机制

一般情况下,jieba在首次进行分词时才加载词典并生成trie树,若手动初始化,会立即加载。

import jieba

jieba.initialize() #手动初始化(可选)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息