简介
jieba(结巴)是百度工程师Sun Junyi开发的一个开源库,在GitHub上很受欢迎,使用频率也很高。
GitHub链接:https://github.com/fxsjy/jieba
jieba最流行的应用是分词,包括介绍页面上也称之为“结巴中文分词”,但除了分词之外,jieba还可以做关键词抽取、词频统计等。
jieba支持四种分词模式:
- 精确模式:试图将句子最精确地切开,只输出最大概率组合;
- 搜索引擎模式:在精确模式基础上,对长词再次切分,提高召回率,适用于搜索引擎分词;
- 全模式:把句子中所有的可以成词的词语都扫描出来;
- paddle模式,利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。
代码:
输出:
代码:
输出
从上面的例子可以看出:
- 精确模式是比较常见的分词方式,也是默认的方式;
- 搜索引擎模式切分更细一些,包含了清华、华大、大学、中国、科学、学院等等;
- 全模式相对于搜索引擎模式更全,列出了所有可能;
- paddle模式接近于精确模式。
另外,jieba还支持:
- 繁体分词
- 自定义词典
安装:
pip/pip3/easy_installinstall jieba
使用:
importjieba # 导入 jieba
importjieba.posseg as pseg #词性标注
importjieba.analyse as anls #关键词提取
算法
基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)
采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法
关于关键词提取等功能,请关注后续文章。