1. 您的位置:首页 > seo技术 >内容

[北京飞鸟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分析

拼写检查

语音识别

抄袭检测

小规模字符串近似搜索,类似于搜索引擎输入关键字,出现类似的结果列表

算法过程

  1. str1或str2的长度为0并返回另一个字符串的长度。如果(str1.length=0)返回str2.length;如果(str2.length=0)返回str1.length;
  2. 初始化(n+1)*(m+1)矩阵D并将第一行和第列的值从0增加。
  3. 扫描两个字符串(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]+温度最小值三。
  4. 扫描后,返回矩阵的最后一个值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