序言
jieba是目前最好的Python中文分词组件,它主要有以下3种特性:
- 支持3种分词模式:精确模式、全模式、搜索引擎模式
- 支持繁体字
- 支持自定义词典
分词
可使用和方法进行分词,两者所返回的结果都是一个可迭代的generator,可使用for循环来获得分词后得到的每一个词语(unicode),或者直接使用以及直接返回list。其中:
- 和接受3个参数:
- 需要分词的字符串(unicode或UTF-8字符串、GBK字符串)
- cut_all参数:是否使用全模式,默认值为
- HMM参数:用来控制是否使用HMM模型,默认值为
- 和接受2个参数:
- 需要分词的字符串(unicode或UTF-8字符串、GBK字符串)
- HMM参数:用来控制是否使用HMM模型,默认值为
尽量不要使用GBK字符串,可能无法预料的错误解码成UTF-8
全模式
【全模式】:他/来到/上海/上海交通大学/交通/大学
精确模式
【精确模式】:他/来到/上海交通大学
【返回列表】:[‘他’, ‘来到’, ‘上海’, ‘上海交通大学’, ‘交通’, ‘大学’]
搜索引擎模式
【搜索引擎模式】:他/毕业/于/上海/交通/大学/上海交通大学/机电/系/,/后来/在/一机部/上海/电器/科学/研究/研究所/工 作
【返回列表】:[‘他’, ‘毕业’, ‘于’, ‘上海’, ‘交通’, ‘大学’, ‘上海交通大学’, ‘机电’, ‘系’, ‘,’, ‘后来’, ‘在’, ‘一 机部’, ‘上海’, ‘电器’, ‘科学’, ‘研究’, ‘研究所’, ‘工作’]
HMM模型
HMM模型,即隐马尔可夫模型(Hidden Markov Model,HMM),是一种基于概率的统计分析模型,用来描述一个系统隐性状态的转移和隐性状态的表现概率。在jieba中,对于未登录到词库的词,使用了基于汉字成词能力的HMM模型和Viterbi算法,其大致原理是:
采用四个隐含状态,分别表示为单字成词,词组的开头,词组的中间,词组的结尾。通过标注 的分词练集,可以得到HMM的各个参数,然后使用Viterbi算法来解释测试集,得到分词结果。
【未启用HMM】:他/来到/了/ 易/杭/研/大厦
【启用HMM】:他/来到/了/ 易/杭研/大厦
繁体字分词
jieba还支持对繁体字进行分词
【全模式】:人生/易/老天/難/老// //歲/歲/重/陽// //今/又/重/陽// //戰/地/黃/花/分外/香// //壹年/壹/度/秋/風/勁// //不似/春光// //勝/似/春光// //寥廓/江天/萬/裏/霜// /
【精确模式】:人生/易/老天/難老/ /歲/歲/重陽/ /今/又/重陽/ /戰地/黃/花/分外/香/ /壹年/壹度/秋風勁/ /不/似/春光/ /勝似/春光/ /寥廓/江天/萬/裏/霜/
【搜索引擎模式】:人生/易/老天/難老/ /歲/歲/重陽/ /今/又/重陽/ /戰地/黃/花/分外/香/ /壹年/壹度/秋風勁/ /不/似/春 光/ /勝似/春光/ /寥廓/江天/萬/裏/霜/
添加自定义词典
开发者可以指定自定义词典,以便包含jieba词库里没有的词,词典格式如下:
词语 词频(可省略) 词性(可省略)
虽然jieba有新词识别能力,但自行添加新词可以保证更高的正确率
载入词典
使用即可载入词典;为文件类对象或自定义词典的路径。
【未加载词典:】周大福/是/创新/办/主任/也/是/云/计算/方面/的/专家
【加载词典后】:周大福/ 是/ 创新办/ 主任/ 也/ 是/ 云计算/ 方面/ 的/ 专家
调整词典
使用和在程序中动态修改词典。
使用可调节单个词语的词频,使其能(或不能)被分出来。
【调节词频前】:如果/放到/post/中将/出错/。
494
【调节词频后】:如果/放到/post/中/将/出错/。
关键词提取
jieba提供了两种关键词提取方法,分别基于 TF-IDF 算法和 TextRank 算法。
基于 TF-IDF 算法的关键词提取
TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率)是一种统计方法,用以评估一个词语对于一个文件集或一个语料库中的一份文件的重要程度,其原理可概括为:
一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能够代表该文章
计算公式:
T F ? I D F = T F ? I D F TF – IDF = TF * IDF TF?IDF=TF?IDF
其中:
- TF(term frequency, TF):词频,某一个给定的词语在该文件中出现的次数,计算公式:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!