1. 前向最大匹配算法
假定分词词典中最长词有M个汉字符,则被处理文档的当前字符串中前M个字作为匹配字段,查找词典。若字典中存在这样M个字组成的词,则匹配成功,匹配字段作为一个词切分出来;若匹配不成功,将匹配字段最后一个字去掉,剩下的字符串重新进行匹配,如此进行下去,直至匹配成功。然后取下一个M字符进行匹配处理,直到文档被扫描完为止。
2. 逆向最大匹配算法
逆向最大匹配法从被处理的文档末端开始扫描匹配,每次取最末端M个字符(M为词典中最长的词的长度)作为匹配字段,若匹配失败则去掉匹配字段最前面的一个字符,继续匹配,如此下去直至分词完成。注意后处理好的分词列表是倒序排放,所以需要reverse.
3. 双向最大匹配
双向最大匹配法是将正向最大匹配法和逆向最大匹配法结果比较,选取词数切分最少的作为结果
双向最大匹配法规则:
- 若正反向分词结果词数不同,取分词数量较少的结果
- 若分词结果词数相同:
- 分词结果相同,随意返回
- 分词结果不同,返回单字较少的结果