数据科学家gensim机器学习与数据挖掘

中文分词常用方法简述

2017-10-11  本文已影响653人  不会停的蜗牛

中文分词

就是将一句话分解成一个词一个词,英文中可以用空格来做,而中文需要用一些技术来处理。

三类分词算法:

1. 基于字符串匹配:

将汉字串与词典中的词进行匹配,如果在词典中找到某个字符串,则识别出一个词。

优点,速度快,都是O(n)时间复杂度,实现简单。
缺点,对歧义和未登录词处理不好。

此类型中常用的几种分词方法有:

2. 基于理解:

通常包括三个部分:分词(用来获得有关词)、句法语义(利用句法和语义信息来对分词歧义进行判断)、总控。

3. 基于统计:

对语料中相邻共现的各个字的组合的频度进行统计,将概率最大的分词结果作为最终结果。常见的模型有HMM和CRF。

优点,能很好处理歧义和未登录词问题。
缺点,需要大量的人工标注数据,以及较慢的分词速度。

部分分词工具:

中科院计算所NLPIR http://ictclas.nlpir.org/nlpir/
ansj分词器 https://github.com/NLPchina/ansj_seg
哈工大的LTP https://github.com/HIT-SCIR/ltp
清华大学THULAC https://github.com/thunlp/THULAC
斯坦福分词器,Java实现的CRF算法。 https://nlp.stanford.edu/software/segmenter.shtml
Hanlp分词器,求解的是最短路径。 https://github.com/hankcs/HanLP
结巴分词,基于前缀词典,生成句子中所有可能成词所构成的有向无环图 (DAG),采用动态规划查找最大概率路径, 找出基于词频的最大切分组合,对于未登录词,采用了 HMM 模型,使用 Viterbi 算法。 https://github.com/yanyiwu/cppjieba
KCWS分词器(字嵌入+Bi-LSTM+CRF),本质上是序列标注。 https://github.com/koth/kcws
ZPar https://github.com/frcchang/zpar/releases
IKAnalyzer https://github.com/wks/ik-analyzer


相关文章:
一个隐马尔科夫模型的应用实例:中文分词

学习资料:
http://www.jianshu.com/p/e978053b0b95
https://www.zhihu.com/question/19578687/answer/190569700


推荐阅读 历史技术博文链接汇总
http://www.jianshu.com/p/28f02bb59fe5
也许可以找到你想要的:
[入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]

上一篇 下一篇

猜你喜欢

热点阅读