本文作者:兰州大学 信息科学与工程学院 刘浩宇 email:939388082@qq.com 内容可能有不到之处,欢迎交流。
未经本人允许禁止转载。
1.编辑距离的定位
在自然语言中,文本检测作为字面匹配、语义匹配、文本相似度和文本匹配等应用的基础模块。编辑距离的计算可以说是作为文本检测的基础,它可以完成一些要求度低的作业。
-
字面匹配
编辑距离属于字面匹配,是低级的匹配,顾名思义,也就是仅看单词拼写的相似程度。
例如:quiet——quite、angle——angel
和它类似的算法还有TF-IDF、BM25、Simhash,在后续会捎带叙述。 -
语义匹配
可以发现,仅仅依靠字面是不够的。
例如:“database”(数据库)和“Structured Quevy Language”(结构化查询语言),“darling”和“beloved”极度相关的两个名词,在字面上看来却没有什么关联。
这也就涉及到了语义匹配,常见的语义匹配有LAS、HDP。
2.利用动态规划解决编辑距离问题
对于emigrant和immigrant,低级的相似匹配(相似度匹配可分为词与词、句与句、章与章,但都要回到的词与词的基础单位)。
考虑从短到长的各子串编辑距离,以此类推最终得到整个字符串的编辑距离。
将emigrant与immigrat横向纵向展开
emigrant和immigrant都是从第一个位置开始,LEVa,b(0,0) = 0。两字符串分别赋值。
下面开始计算各字串之间的编辑距离:
有点懵,但是算法就是如此。总结了一下简洁版:
可分为三种情况:
① LEVa,b(i,j), if a = b and i = j, LEVa,b(i,j) = min(左,左上,上);
② LEVa,b(i,j), if a ≠ b and i = j, LEVa,b(i,j) = min(左,左上,上) + 1;
③ LEVa,b(i,j) if i ≠ j ,LEVa,b(i,j) = min(左,左上,上) + 1;
结果:
(3,0)的 i 和(0,3)的 e ,符合第三种可能,故min(0,1,1)+ 1 = 1;