中文分词主要有两个类别:本别是基于字词典分词算法和基于统计的机器学习算法,下面依次介绍这两种方法。
1 基于词典分词算法
也称字符串匹配分词算法。该算法是按照一定的策略将待匹配的字符串和一个已建立好的“充分大的”词典中的词进行匹配,若找到某个词条,则说明匹配成功,识别了该词。常见的基于词典的分词算法分为以下几种:正向最大匹配法、逆向最大匹配法和双向匹配分词法等。
基于词典的分词算法是应用最广泛、分词速度最快的。很长一段时间内研究者都在对基于字符串匹配方法进行优化,比如最大长度设定、字符串存储和查找方式以及对于词表的组织结构,比如采用TRIE索引树、哈希索引等。
2 基于统计的机器学习算法
这类目前常用的是算法是HMM、CRF、深度学习等算法,其本质是序列标注,比如stanford、Hanlp分词工具是基于CRF算法。以CRF为例,基本思路是对汉字进行标注训练,不仅考虑了词语出现的频率,还考虑上下文,具备较好的学习能力,因此其对歧义词和未登录词的识别都具有良好的效果。
3 中文分词的难点
- 分词标准:比如人名,在哈工大的标准中姓和名是分开的,但在Hanlp中是合在一起的。这需要根据不同的需求制定不同的分词标准。
- 歧义:对同一个待切分字符串存在多个分词结果。
- 新词:也称未被词典收录的词,该问题的解决依赖于人们对分词技术和汉语语言结构的进一步认识。