中文分词技术(Chinese Word Segmentation) 指将一个汉字序列切分成一个个单独的词。分词就是将连续的字序列按照一定的规则重新组合成词序列的过程
目前中文分词算法有以下5类:
- 基于词典的方法
- 基于统计的方法
- 基于规则的方法
- 基于人工智能技术的方法
- 基于字标注的方法
在业务中,可以使用多种算法进行比较选择,其中比较选择的原则有以下几点:
- 总词数越少越好
- 切分单字词的数量越少越好
- 切分的单个词的字数越多越好
- 切分结果中非词典的词越少越好
基于词典的方法
其基本原理是按照一定的步长对文档取词,把结果和词典进行匹配,匹配成功则分词成功,否则不予切分。这种方法实现简单,实用性强,最大的缺点就是识别的成功率极大程度受限于词库的完整度
取词的规则和算法有许多,如:
- 正向最大匹配法
- 邻近匹配法
- 逆向最大匹配法
- 双向最大匹配法
- 最短路径匹配法
- ...
最大正向匹配法(Maximun Matching,下文称MM)
其原理是以词库的最大长度为初始长度,窗口为1,从左到右对字符串进行扫描匹配,匹配不成功则减小窗口
其步骤是:
- 取得词库中最长的词的长度
- 从左到右截取1得到的长度的字符串
- 到词典中进行匹配
- 匹配成功,则把该字符串切分,余下字符串继续进行2操作
- 匹配不成功,则将该字符串去掉最后一个字,余下字符串继续进行3操作
- 重复上述过程,直到切分出所有词为止
以“研究生命的起源”为例,假定词典中的词包含有:{研究、研究生、生命、命、的、起源},切分步骤如下:
研究生 #第一个词匹配成功
命的起
命的
命 #第二个词匹配成功
的起源
的起
的 #第三个词匹配成功
起源 #第四个词匹配成功
匹配结果为:“研究生 命 的 起源”
邻近匹配法(Nearest Nerghbor Matching,下文称NM)
MM在每次匹配过程中都要进行一次二分搜索,算法复杂度太高
NM则是在取到词典中匹配的第一个词后,往词后拼接下一个字,拼接后的新词在从词典中寻