Python中文分词包:jieba分词

一、 基本功能
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() #手动初始化(可选)

你可能感兴趣的:(python)