.NET中有没有关于计算字符串相似度的现成的函数?

时间:2022-09-20 03:10:34
比如常见的计算相似度的 "编辑距离" "最长公共子串" 之类的,.NET中有没有对应的直接可以调用的函数呢?

另外这些算法分别适用于什么样的字符串比较,有人对这方面比较了解的吗.

例如
cctv.com这个网站,模仿它的钓鱼网站可能起的名字有

wvw-cctv.com
ccav.com
wvw-ccav.com

ccav.com这种用编辑距离的方法比较容易找出,wvw-cctv.com比较容易用最长公共子串找出
但是wvw-ccav.com如果只用上面其中一种方法的话,可能就会和很多正常域名混在一起,找不出来了.
请问这时应该怎么来处理呢

有没有其他的关于字符串相似度的算法,或者是相关的文章呢,麻烦有经验的朋友推荐一下

4 个解决方案

#1


KMP算法

#2


不懂,提供个思路,机器学习

#3


KMP算法 也是求相同子串,我上面说的wvw-ccav.com中是一个相似的子串ccav.com而不是相同的,这样就没办法找了.
目前我只有用笨办法,把wvw-ccav.com取"wvw-","vw-c","w-cc","ccav"等所有长度和ccav一样的子串拿出来比较,取相似度最高的那个.效果要稍微好一点.
但是针对这种字符串的相似度,应该早有人总结出了很好的比较方法了吧

#4


能不能用字符串的包含方法,string.Contains()

#1


KMP算法

#2


不懂,提供个思路,机器学习

#3


KMP算法 也是求相同子串,我上面说的wvw-ccav.com中是一个相似的子串ccav.com而不是相同的,这样就没办法找了.
目前我只有用笨办法,把wvw-ccav.com取"wvw-","vw-c","w-cc","ccav"等所有长度和ccav一样的子串拿出来比较,取相似度最高的那个.效果要稍微好一点.
但是针对这种字符串的相似度,应该早有人总结出了很好的比较方法了吧

#4


能不能用字符串的包含方法,string.Contains()