双向最大匹配算法python_计算机是如何理解人类之间交流的语言——双向最大匹配算法...

本文介绍了一种常用的自然语言处理算法——双向最大匹配算法。该算法通过正向和反向匹配句子,结合词库进行文本分词,提高了分词准确性。文章详细解释了正向匹配法、逆向匹配法及双向匹配法的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

往期回顾

道路交通信息常用检测技术介绍——第三篇:射频检测器

道路交通信息常用检测技术介绍——第二篇:环形线圈检测器

道路交通信息常用检测技术介绍——第一篇:地磁检测器

基于大数据的苏州市交通分析系统——快速路流量和车速监测

背景

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

1

正向匹配法

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

No.1

第一轮:

1. 取出字串“苏州中学生”,扫描5个字的词典,如果匹配失败则每次去掉最后面一个字。

2. “苏州中学”,扫面4个字的词典,匹配成功,输出“苏州中学”,剩下的字符串为“生前来参观”

No.2

第二轮:

1. “生前来参观”,扫描5个字词典,没有匹配,字数减一,变为“生前来参”

2. “生前来参”,扫描4个字词典,没有匹配,字数减一,变为“生前来”

3. “生前来”,扫描3个字词典,没有匹配,字数减一,变为“生前”

4. “生前”,扫描2个字词典,有匹配,输出“生前”,剩下字符串为“来参观

No.3

第三轮:

1. “来参观”,扫描3个字词典,没有匹配,字数减一,变为“来参”

2. “来参”,扫描2个字词典,没有匹配,字数减一,变为“来”,由于单词最小粒度为1,直接输出“来”,字符串变为“参观”

No.4

第四轮:

1. “参观”,扫描2个字的词典,有匹配。

正向匹配法丨结论

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

2

逆向匹配法

No.1

第一轮:

1. “生前来参观”,扫描5个字词典,没有匹配,字数减一,变为“前来参观”

2. “前来参观”,扫描4个字词典,没有匹配,字数减一,变为“来参观”

3. “来参观”,扫描3个字词典,没有匹配,字数减一,变为“参观”

4. “参观”,扫描两个字的词典,有匹配,输出“参观”

No.2

第二轮:

1. “中学生前来”,扫描5个字的词典,没有匹配,字数减一,变为“学生前来”

… …

逆向匹配法丨结论

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

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

3

双向匹配法

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

双向

结果:

1. 假如正向和逆向匹配结果一样,那随便选一个结果就可以了

2. 如果结果不一样,那要遵从两个原则:1) 取分词数量较少的结果;2)如果数量一样则取单字词较少的那个。我的理解是,遵从这两个原则的分词结果,单词颗粒度一般比较大,颗粒度比较大的单词一般包含的信息比较完整。

丨最后总结

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

007974dff6316f04c8efe06707ffb46d.png

讲数公众号

数 据  | 开 发 | 交 通

用   数   据   讲   述   城   市

6a8af1e4-7524-eb11-8da9-e4434bdf6706.svg

球分享

6d8af1e4-7524-eb11-8da9-e4434bdf6706.svg

球点赞

fa7cf54b54880c0b00cb1ea03a4082c2.gif

球在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值