基于词典的正向/逆向最大匹配算法

背景

编程语言是人类与计算机之间交流的工具,而所谓的自然语言则是人类与人类之间交流的工具,那么计算机是如何理解人与人之间交流所使用的语句呢?今天讲一种常用的自然语言处理算法——双向最大匹配算法,这种算法虽然实现简单,但是依赖庞大的词库,词库相当的情况下,能取得不错的分词效果。

正向匹配法

双向最大匹配算法”中的“双向”就是正向和反向。所以先来说正向匹配法。正向匹配法就是按照正向阅读顺序,根据词库中的词对句子进行匹配,我们已“苏州中学生前来参观”这句话为例(词库中存在各种长度的词语,这里假设词库中最长的单词长度为5

正向匹配法丨结论

因此正向匹配法输出结果:“苏州中学 /生前 /来 /参观”,这显然不是我们要的意思,因此有人提出了逆向匹配法,原理和正向匹配一直,不过取词的顺序是从后往前。

逆向匹配法

逆向匹配法丨结论

按照这个方法,逆向匹配法最终的输出结果是:“苏州 /中学生 /前来 /参观“。

但是,无论是正向匹配法还是逆向匹配法,方法都是一样的,逆向匹配也会出现曲解句子意思的情况,并不会从根本上改变匹配的准确度,因此有了双向最大匹配法

双向匹配法

双向最大匹配法是通过比较正向和逆向的结果从而确定正确的结果:

丨最后总结

双向最大匹配法的结果也不是完全准确的,所以在使用中往往会加入一些统计模型做校正。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值