中文分词器如何选择 jieba ik-analyzer ansj_seg HanLP

2,097 阅读3分钟

一、几个项目github star对比

在网上可以看到很多中文分词器的文章,但是都没说明白到底选择什么。当然一般来说没有最好的只有最合适的,在分词能力、繁体支持等等都可考虑的方向。当然github上的star也可以作为开源项目选择的一个依据。

  • HanLP github 21.4k star

[github.com/hankcs/HanL…

github.com

](link.zhihu.com/?target=htt…)

  • jieba github 24.9k star

[fxsjy/jieba​

github.com图标](link.zhihu.com/?target=htt…)

  • ik-analyzer github 589 star

可以看到ik-analyzer和es solr等都有集成好像589star比较少,当然ik-analyzer主要是在code.google里,当最近一次code.google更新的版本也只是2012年的版本

[wks/ik-analyzer​

github.com

](link.zhihu.com/?target=htt…)

ansj_seg 5.7k

[NLPchina/ansj_seg​

github.com

](link.zhihu.com/?target=htt…)

个人建议使用jieba分词器

二、具体说明

(1)Hanlp分词器

[hankcs/HanLP​

github.com

](link.zhihu.com/?target=htt…)

最短路径分词,有中文分词、词性标注、新词识别、命名实体识别、自动摘要、文本聚类、情感分析、词向量word2vec等功能,支持自定义词典;

采用HMM、CRF、TextRank、word2vec、聚类、神经网络等算法;

支持Java,C++,Python语言;

(2)结巴分词

[github.com/fxsjy/jieba…

github.com

](link.zhihu.com/?target=htt…)

找出基于词频的最大切分组合,有中文分词、关键词提取、词性标注功能,支持自定义词典;

采用HMM模型、 Viterbi算法;

支持Java,C++,Python语言;

(3)哈工大的LTP

[HIT-SCIR/ltp​

github.com图标](link.zhihu.com/?target=htt…)

有中文分词、词性标注、句法分析等功能;

商用需付费;调用接口,每秒请求的次数有限制;

编写语言有C++、Python、Java版;

(4)清华大学THULAC

[thunlp/THULAC​

github.com图标](link.zhihu.com/?target=htt…)

有中文分词、词性标注功能;

有Java、Python和C++版本;

(5)北京大学 pkuseg

[lancopku/pkuseg-python​

github.com图标](link.zhihu.com/?target=htt…)

支持按领域分词、有词性标注功能、支持用户自训练模型;

基于CRF模型、自研的ADF训练方法;

有python版本;

(6)斯坦福分词器

[The Stanford Natural Language Processing Group​

nlp.stanford.edu

](link.zhihu.com/?target=htt…)

支持多语言分词包括中英文,提供训练模型接口,也可用已有模型,但速度较慢;

Java实现的CRF算法;

(7)KCWS分词器

[koth/kcws​

github.com图标](link.zhihu.com/?target=htt…)

有中文分词、词性标注功能,支持自定义词典;

采用word2vec、Bi-LSTM、CRF算法;

(8)ZPar

[frcchang/zpar​

github.com图标](link.zhihu.com/?target=htt…)

有中文、英文、西班牙语分词、词性标注;

C++语言编写;

(9)IKAnalyzer

[wks/ik-analyzer​

github.com图标](link.zhihu.com/?target=htt…)

有中文分词功能,支持自定义词典;

(10)Jcseg

[狮子的魂/jcseg​

gitee.com

](link.zhihu.com/?target=htt…)

有中文分词、关键词提取、自动摘要、词性标注、实体识别等功能,支持自定义词典;

基于mmseg、textRank、BM25等算法;

(11)FudanNLP

[FudanNLP/fnlp​

github.com图标](link.zhihu.com/?target=htt…)

中文分词 词性标注 实体名识别 关键词抽取等;

(12)SnowNLP

[isnowfy/snownlp​

github.com图标](link.zhihu.com/?target=htt…)

有中文分词、词性标注、情感分析、文本分类、提取关键词等功能;

基于HMM、Naive Bayes、TextRank、tf-idf等算法;

Python类库;

(13)ansj分词器

[NLPchina/ansj_seg​

github.com图标](link.zhihu.com/?target=htt…)

有中文分词、人名识别、词性标注、用户自定义词典等功能;

基于n-Gram+CRF+HMM算法;

(14)NLTK

[nltk/nltk​

github.com图标](link.zhihu.com/?target=htt…)

擅长英文分词,也支持中文分词处理,但建议先用其他分词工具对中文语料分词,再用它的处理功能;

python库;

(15)庖丁解牛

[code.google.com/p/paoding​

code.google.com

](link.zhihu.com/?target=htt…)

3.2,其他

(1)中科院计算所NLPIR

具有分词、词性标注、新词识别、命名实体识别、情感分析、关键词提取等功能,支持自定义词典;

(2)腾讯文智

(3)BosonNLP

(4)百度NLP

(5)阿里云NLP

(6)新浪云

(7)盘古分词

文章摘至

[华天清:中文分词方法和软件工具汇总笔记​

zhuanlan.zhihu.com图标](zhuanlan.zhihu.com/p/86322679)