[北京飞鸟mip便宜]Seo积分级数的C#string相似性算法-levenshtein距离法
从:http://www.lingdonge.com/seo/672.html
字符串相似性算法也称为levenshtein距离算法),
判断两个字符串之间的相似程度是一件事。它在搜索引擎和验证代码识别**别有用。
例如,我们使用收集来处理文章。您可以使用关键字进行相似性判断,并找到匹配度最高的文章进行收集。等等。
请参阅下面的其他博客文章
编辑距离Levenshtein距离(也称为编辑距离)是指两个字符串之间从一个转换到另一个所需的最小编辑操作数。距离越大,它们就越不同。许可的编辑操作包括用另一个字符替换一个字符,插入一个字符并删除一个字符。
例如,将kitten转换为坐姿:
Sitten(K→S)
Sittin(e→I)
坐(→G)
俄罗斯科学家Vladimir levenshtein于1965年提出了这一概念。因此,它也被称为levenshtein距离。
例如
- 如果str1="Ivan",str2="Ivan",则计算值为0。没有转换。相似性=1-0/数学。Max(str1.length,str2.length)=1
- 如果str1="ivan1",str2="ivan2",则计算后等于1。Str1's"1"转换"2",转换一个字符,所以距离为1,相似度=1-1/Math。Max(str1.length,str2.length)=0.8
申请
DNA分析
拼写检查
语音识别
抄袭检测
小规模字符串近似搜索,类似于搜索引擎输入关键字,出现类似的结果列表
算法过程
- str1或str2的长度为0并返回另一个字符串的长度。如果(str1.length=0)返回str2.length;如果(str2.length=0)返回str1.length;
- 初始化(n+1)*(m+1)矩阵D并将第一行和第列的值从0增加。
- 扫描两个字符串(N*m)。如果str1[I]=str2北京飞鸟mip便宜[J],请使用temp将其记录为0。否则,温度值为1。然后在分配给D[I-1,j]+1的矩阵D[I,j]中,D[I,j-1]+1,D[I-1,j-1]+温度最小值三。
- 扫描后,返回矩阵的最后一个值D[N北京飞鸟mip便宜][m]是它们的距离。
相似度计算公式:1-它们的距离/两个字符串的最大长度北京飞鸟mip便宜。
为了直觉,我分别为行和列写两个字符串,这在实际计算中是不需要的。让's采取字符串"ivan1"和"ivan2"作为示例来查看矩阵中的中位数:1. 第一行和第一列的值从0增加。
2. 矩阵[I-1,J]+1;矩阵[I,J-1]+1;矩阵[I-1,J-1]+T
3. 生成列v值
等,直到生成所有矩阵为止。
它们之间的距离是1。
相似性:1-1/数学。Max("ivan1"。长度,"ivan2"。长度)0.8 87
下面是核心类库:
公共类levenshteindistance{Private Static levenshteindistance实例=NULL;公共静态levenshteindistance实例{get{If(实例=空){return New levenshteindistance();}return实例;}/////获取最小的单位数字。/// /////
该算法实际上非常简单。
调用方法如下:
静态空白主(字符串[]ARGs){string str1="ivan1";string str2="ivan2";控制台。writeline("字符串1{0}",str1);控制台。writeline("字符串2{0}",str2);控制台。writeline("similarity{0}%",new levenshteindistance()。levenshteindistancepercent(str1,str2)*100);控制台。readline();}成都徐五认为。核心是,我们深入研究了百度等搜索中常用的一些算法知识gines,这对于理解搜索引擎的操作和制定合理的Seo关键字解决方案非常有益。
成都徐晓武两句话:这篇文章很难出去(成都徐第五)。重新定位成都原来的第五名。请保留链接:Seo集成系列中的C#string相似性算法,3q
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。如若转载,请注明出处:http://www.botadmin.cn/sylc/4802.html