基于编辑距离比较的高仿号检测器

针对社交平台上真假难辨的网红高仿号问题,本文介绍了一种基于编辑距离算法的高仿号检测器,能有效识别并揭示高仿号的仿造手段,特别适用于细微差别难以察觉的情况。

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

1.简介

随着各类社交网站的快速发展,越来越多的网红浮现出来。因而许多网红的高仿号也层出不穷,让人真假难辨。目前大多数的社交网站都保证用户名的候选码属性,即不允许两个用户使用同样的名称。尽管如此,许多高仿号仍然可以做到以假乱真,混淆视听。例如,图1,图2分别展示了钉钉的官方号和其中一个高仿号。
在这里插入图片描述
图1
在这里插入图片描述
除了级别上的差距以外,几乎看不出任何差别。后来在网友的提醒下我才注意到,高仿号中的talk并不是真正的talk,而是用大写的字母i代替了原先小写的L。

为了更好地甄别官方号和高仿号,在本文中我们开发了基于编辑距离计算的高仿号检测器。这里读者肯定要问了,你直接比较str1 == str2不就可以了吗,显然这种方式是可以的,但是这种方法只是做到了知其然,但没做到知其所以然。我们不但要识破高仿号,更要能彻底的揭穿高仿号的仿造手段,高仿号和官方号往往非常相似,只是在细小的地方做了手脚,我们的目的正是揪出这细小的细节

2.算法回顾

编辑距离算法是经典的动态规划算法。编辑距离的定义是,假设有一个字符串s,欲使得字符串由s变为t,可以进行下列三种操作:
1)替换s中的某个字母
2)删除s中的某个字母
3)在s某处添加一个字母
每个操作只能操作一个字母,由s变为t所需的操作次数叫做编辑距离,所需的最少次数叫做最短编辑距离。

最短编辑距离编辑距离的动态转移方程可以写作
dp[i+1][j+1]=min(dp[i][j+1]+1,dp[i+1][j]+1,dp[i][j]+str1[i]==str2[j]?0:1dp[i+1][j+1] = min(dp[i][j+1]+1, dp[i+1][j]+1, dp[i][j] + str1[i] == str2[j] ? 0: 1dp[i+1][j+1]=min(dp[i][j+1]+1,dp[i+1][j]+1,dp[i][j]+str1[i]==str2[j]?0:1
其中str1, str2表示要比较的两个字符串,dp[i+1][j+1]表示字符串str1[0:i]和str[0:j]的最短编辑距离,其中规定
dp[0][i]=i,dp[i][0]=idp[0][i] = i, dp[i][0] = idp[0][i]=i,dp[i][0]=i

我们以官方号 “数学汤家凤” 和高仿号 “数学家汤凤” 为例,展示最短编辑距离的dp矩阵,如表1
在这里插入图片描述
表1
最终我们取表格最右下方的元素,即为编辑距离2.

现在我们只知道最短编辑路径是2,但却不知道最短编辑距离的路径。实际上最短编辑距离就蕴含在这张dp矩阵中。按照一定的策略进行回溯,我们就可以得到编辑路径:
在这里插入图片描述
表2

入图,向左上角回溯时,如果编辑距离不变,说明没有进行编辑操作,如果编辑距离减少,说明字符被替换。由此可知,汤和家两个字发生了替换操作

值得注意的是,回溯的方法并不唯一。实际上可以按照三条路径进行回溯。
在这里插入图片描述
如图,向左走表示进行删除,而向上代表插入字符。因此,编辑路径也可以认为是,先由“数学汤家凤”删除汤字得到“数学汤凤”,再通过新增“家”字得到“数学汤家凤”,编辑距离同样是2.

3.我的工作

对于检测高仿号的问题,通常来说替换操作使用最为频繁,因此我们在代码中做了改进,使算法在回溯时,在两个字符串等长情况下,优先考虑替换的情况,而非新增和删除的情况;不等长的情况下,优先考虑通过删除或新增字符,使得两个字符串等长。这样得到的编辑路径,更加适合于解释高仿号的高仿方法。

4.检测效果

如下图3,我们从bilibili上汤老师的动态中复制出汤老师官方的ID,以及一个疑似的高仿号“数学家汤凤”的ID,分别到检测器中。点击检测。
在这里插入图片描述
图3
即可看到真实的ID与虚假的ID的对比。

同时对于只修改了一个字符的高仿号,我们还提供了强力模式,彻底的抠出高仿之处。在展示结果的同时,我们直接对被修改的字符进行检索。
在这里插入图片描述
图4
从图4中我们可以一眼看出这个替换后的字母是I(大写的i)而不是l(小写L)。

5.访问地址

www.fgb2019.top/checkup
也可以点击下方阅读原文进行访问。
请尽可能复制粘贴ID到检测器中进行检测,以获得最佳效果。

6.尾声

本文采用严肃的技术和搞笑的创意相结合,纯属娱乐,并不针对任何高仿号或官方号,我们更不会因为高仿号的存在而举报社交平台。欢迎访问,理性评论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值