正向最大匹配算法
今天之所以想写这个,完全是同事问的问题,让我想起来写下分词算法!很多东西都是自己理解,但是写不出来,就参看了一下资料。要是觉得此篇文章在哪看过,别介意。我查到两个版本,表达语句不一样,但是意思都是一样的,我下面摘抄的是其中一个相对比较好理解的。
正向最大匹配算法基本思想:假设字典中最长的词语字数为m,先根据汉语标点符号及特征词把汉语句子切分为短语,然后去取短语的前m个字,在字库里面查找时候存在这个词语,如果存在,短语就去掉在个词;如果不存在就去掉这m个字的最后一个字,检查是否是单字,若是输出此字并将短语减去此字,若不是则继续判断看字库是否存在这个词,如此反复循环,直到输出一个词,此后继续取短语的前m个字反复循环。这样就可以将一个短语分成词语的组合了。
下图为正向最大匹配算法的流程图
如图:

正向最大匹配算法是基于字符串匹配的分词方法,此外还有逆向最大匹配法、双向最大匹配法等。以后有机会会总结一下!
相对于基于理解和统计的算法来说,正向最大匹配算法复杂度比较小,技术实现比较容易,仅需要建立词表即可。但是他对歧义识别比较差,分词的准确性不高。在实际中我们不能仅仅简单的使用正向最大匹配算法,还需要对其进行改进,可以和逆向匹配算法一起使用,这样可以提高歧义的识别,使他的准确度更高。
作者:搜索引擎营销-大鹏
转载请注明出处:http://www.ueoer.org/post/maximum-matching-method.html
正向最大匹配算法基本思想:假设字典中最长的词语字数为m,先根据汉语标点符号及特征词把汉语句子切分为短语,然后去取短语的前m个字,在字库里面查找时候存在这个词语,如果存在,短语就去掉在个词;如果不存在就去掉这m个字的最后一个字,检查是否是单字,若是输出此字并将短语减去此字,若不是则继续判断看字库是否存在这个词,如此反复循环,直到输出一个词,此后继续取短语的前m个字反复循环。这样就可以将一个短语分成词语的组合了。
下图为正向最大匹配算法的流程图
如图:

正向最大匹配算法是基于字符串匹配的分词方法,此外还有逆向最大匹配法、双向最大匹配法等。以后有机会会总结一下!
相对于基于理解和统计的算法来说,正向最大匹配算法复杂度比较小,技术实现比较容易,仅需要建立词表即可。但是他对歧义识别比较差,分词的准确性不高。在实际中我们不能仅仅简单的使用正向最大匹配算法,还需要对其进行改进,可以和逆向匹配算法一起使用,这样可以提高歧义的识别,使他的准确度更高。
作者:搜索引擎营销-大鹏
转载请注明出处:http://www.ueoer.org/post/maximum-matching-method.html