双向最大匹配算法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
双向最⼤匹配算法
简介
双向最⼤匹配⽅法是基于词典的分词⽅法,按照⼀定的策略将分析的汉字串与字典⾥⾯的词条进⾏匹配,若在词典中找到某个字符串,则匹配成功。
根据扫描的⽅向可以分为正向最⼤匹配算法和逆向最⼤匹配
正向最⼤匹配算法(MM)
正向的⽅向定义是从字符串下标0到字符串末尾位置,取出字串与字典进⾏匹配
初始化最⼤匹配长度MaxLen,当前位置pos(初始为0),处理结果为result
0.令len = MaxLen,取出pos到pos+len的⼦串,查找字典
1.若匹配到,则将⼦串添加到result中,在保证不超出边界范围的情况下,pos = pos + len,向后匹配,len更新为0,回到步骤0处
2.若未在词典中找到该⼦串,len--(len>1),继续查找字典,若len == 1,则取出剩余⼦串,返回0步骤
2的步骤类似于:
你好吗
你好
你
这样的机制
逆向最⼤匹配(RMM)
⽅法与正向类似,但⽅向相反
⽅向为从最后向前推进,即待匹配字符串长度-1的位置,取MaxLen,每次未匹配上则减去最前⼀个字
如:
你好吗
好吗
吗
这样的机制
双向最⼤匹配(BM)
双向最⼤匹配算法的原理就是将正向最⼤匹配算法和逆向最⼤匹配算法进⾏⽐较,从⽽选择正确的分词⽅式
⽐较原则/步骤:
1.⽐较两种匹配算法的结果
2.如果分词数量结果不同:选择数量较少的那个
3.如果分词数量结果相同
1.分词结果相同,返回任意⼀个
2.分词结果不同,返回单字数较少的⼀个
3.若单字数也相同,任意返回⼀个
为什么需要双向匹配
根据研究,中⽂90%左右的句⼦,正向匹配和逆向匹配全然重合,但是存在9%句⼦两种切分⽅法得到的结果不⼀样,单期中必然存在⼀个是正确的,仅有1%的句⼦,重合部分是错的(或都不正确)。