学术界著名的分词器:
- 中科院的 ICTCLAS,代码并不十分好读
- 哈工大的 ltp,
- 东北大学的 NIU Parser,
另外,中文 NLP 和英文 NLP 不太一致的地方还在于,中文首先需要分词,针对中文的分词问题,有两种基本的解决思路:
- 启发式(Heuristic):查字典
- 机器学习/统计方法:HMM、CRF
jieba 分词是python写成的一个算是工业界的分词开源库,其 github 地址为:<a href=“https://github.com/fxsjy/jieba”, target="_blank">https://github.com/fxsjy/jieba
jieba 分词虽然效果上不如 ICTCLAS 和 ltp,但是胜在 python 编写,代码清晰,扩展性好,对 jieba 有改进的想法可以很容易的自己写代码进行魔改。
<a href=“https://segmentfault.com/a/1190000004061791”, target="_blank">jieba分词学习笔记(一)
0. install
有两种方式:
- 进入 cmd:
pip install jiebe
- 在 <a href=“https://pypi.python.org/pypi/jieba/”, target="_blank">https://pypi.python.org/pypi/jieba/,下载 jieba-0.38.zip
- 解压后,执行
python setup.py install
- 解压后,执行
1. jieba 的特色
-
支持三种分词模式,对于
sentence = '我来到了陕西西安'
:- 精确模式(也是默认模式),试图将句子最精确地切开,适合文本分析;
>> '/'.join(jieba.cut(sentence)) 我/来到/了/陕西/西安 >> '/'.join(jieba.cut(sentence, cut_all=False)) 我/来到/了/陕西/西安
- 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
>> '/'.join(jieba.cut(sentence, cut_all=True)) '我/来到/了/陕西/西西/西安'
- 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
>> '/'.join(jieba.cut_for_search("⼩小明硕⼠士毕业于中国科学院计算所,后在⽇日本京都⼤大学深造")) '⼩/小明硕/⼠/士/毕业/于/中国/科学/学院/科学院/中国科学院/计算/计算所/,/后/在/⽇/日本/京都/⼤/大学/深造'
-
支持繁体分词
-
支持自定义词典
-
MIT 授权协议