前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >路径匹配之编辑距离ED算法

路径匹配之编辑距离ED算法

作者头像
mythsman
发布2022-11-14 14:09:15
1.4K0
发布2022-11-14 14:09:15
举报
文章被收录于专栏:mythsman的个人博客

简述

编辑距离(Edit Distance),又称Levenshtein距离,原本是用来描述指两个字串之间,由一个转成另一个所需的最少编辑操作次数。这里的”编辑操作“是指“插入”、“删除”和“修改”。是由俄罗斯科学家Vladimir Levenshtein在1965年提出的概念。他通常就被用作一种相似度计算函数,尤其在自然语言处理方面。

问题描述

具体的讲,用编辑距离来描述处理路径相似度问题需要解决的是如下的问题,这个问题又叫”Edit Distance on Real sequence“(解决的方法就叫EDR算法):

给定两个序列(A_1,A_2,A_3,A_4...A_n)(B_1,B_2,B_3,B_4...B_m),现在我们需要将其中一个序列改成另一个序列(反之亦然,易证相互转换的编辑距离是相等的),且我们一次只能对一个元素做插入、修改、删除中的一个操作。我们将变换所需的最小步数记为EDR(A,B),这个值就可以作为两个序列相异度的一个量度。当然,跟LCSS一样,判断两个点”相等“还需要设定一个阈值\varepsilon,距离小于这个阈值的点可以被认为是”相等“的(不过论文中认为只有两个点的所有维度上的距离只差都小于这个阈值才被判断为相等,虽然我认为意思都差不多)。如下例:

其中黑线表示目标路径,红色实线表示当前路径,红色虚线表示改变后的路径。显然他们的编辑距离是3,包含两个插入操作、一个替换操作。

算法

简单dp。

对于序列A[1:n],B[1:m],令EDR[i,j]表示A[1:i],B[1:j]之间的编辑距离;\varepsilon表示判断两点相等的阈值;subcost[i][j]的值表示A[i],B[j]是否相等,若是则取1,若否则取0。那么:

EDR[i,j]=\left\{\begin{matrix}m&if\ i=0\\n&if\ j=0\\min\left\{\begin{aligned}EDR[i-1][j-1]+subcost[i][j]\\EDR[i][j-1]+1\\EDR[i-1][j]+1\end{aligned}\right.&otherwise\end{matrix}\right.

根据这个递推式就可以求出编辑距离了。

其他处理

通常情况下这种距离在进行对比的时候都会进行归一化。这么做的基础当然是认为路径的相似度主要是考虑形状而不考虑位置)。既然是需要用阈值来判断相等,当然还是将路径的尺度固定到一个相对稳定的度量范围内才更有适用性。归一化的操作也非常简单,就是对于待归一化的路径点的每一个维度x_k,令他的值等于\frac{x_k-\mu_x}{\sigma_x},其中\mu_x,\sigma_x分别表示该维度下的坐标的平均值和标准差。

总结

用EDR算法表示的路径相似度,有着对噪声不敏感的特点。但是他所表示的意义不是非常好(表示路径之间转换的操作数而跟距离没啥关系),而且确定阈值的过程还是很麻烦的。

参考

编辑距离 Edit distance Robust and Fast Similarity Search for Moving Object Trajectories

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简述
  • 问题描述
  • 算法
  • 其他处理
  • 总结
  • 参考
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档