中文分词常用方法简述
2017-10-11 00:00
204 查看
中文分词
就是将一句话分解成一个词一个词,英文中可以用空格来做,而中文需要用一些技术来处理。三类分词算法:
1. 基于字符串匹配:将汉字串与词典中的词进行匹配,如果在词典中找到某个字符串,则识别出一个词。优点,速度快,都是O(n)时间复杂度,实现简单。缺点,对歧义和未登录词处理不好。此类型中常用的几种分词方法有:1. 正向最大匹配法:
假设词典中最大词条所含的汉字个数为n个,取待处理字符串的前n个字作为匹配字段。若词典中含有该词,则匹配成功,分出该词,然后从被比较字符串的n+1处开始再取n个字组成的字段重新在词典中匹配;如果没有匹配成功,则将这n个字组成的字段的最后一位剔除,用剩下的n一1个字组成的字段在词典中进行匹配,如此进行下去,直到切分成功为止。(链接:http://www.jianshu.com/p/e978053b0b95)
2. 逆向最大匹配法:
与正向的区别在于如果匹配不成功则减去最前面的一个字。
3. 最少切分
使每一句中切出的词数最少。
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/f140c3a44ab6学习资料: http://www.jianshu.com/p/e978053b0b95 https://www.zhihu.com/question/19578687/answer/190569700推荐 阅读原文也许可以找到你想要的:
[入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]
相关文章推荐
- 中文分词常用算法之基于词典的双向最大匹配
- ANSJ中文分词使用方法
- php实现scws中文分词搜索的方法
- 中文分词器分词效果的评测方法
- php实现scws中文分词搜索的方法
- 一种中文文本的快速分词方法(二)
- 中文分词方法
- Python 中文分词工具 ——结巴分词的使用方法总结
- 常用分词方法总结分析
- 中文分词词典构造简述
- Python中文分词实现方法(安装pymmseg)
- 求同存异,共创双赢 - 基于对抗网络的利用不同分词标准语料的中文分词方法 | 论文访谈间 #06
- Sketch 52常用中文数据共享 (含使用方法)
- NLPIR中文分词的java接口使用方法
- 为PHPCMS 2008 编辑器增加常用中文字体方法
- 一种中文文本的快速分词方法(三)
- 中文分词常用算法
- 自然语言处理-中文分词方法总结
- 常用JavaScript字符串方法简述