字符编辑的字符串匹配算法的实现+编辑距离算法+JARO算法
3.2.2 Jaro-winkler实现
Jaro-winkler算法实现的分为几步:
(1) 继承了Jaro类,对Jaro类中的getDiatance()方法重写,能够从中得到Jaro-winkler Distance值。
(2) 算出前缀的相同字符数 ,规定其最大不超过4,即当 时取 ,否则取 。
(3) 在Winkler论文中,Winkler修正的标准设置为0.7。即当Jaro所得到结果 时不作调整修正,当 时通过 得到Jaro-winkler所要返回的结果。
Jaro-winkler算法实现
输入:两个带判定的字符串s,t;
输出:Jaro-winkler distance;
class JaroWinkler extends Jaro{
//根据winkler论文中规定修正的标准值为0.7
private float threshold = 0.7f;
//前缀长
private int prefixSize;
//***************
//求前缀相同字符的个数
//*****************
public int prefixMatch(String s1,String s2,int prefixSize){//方法体,返回prefixSize值}
/* 相同前缀字符的长度prefixSize最大取4,即当prefixSize <=4时取prefixSize ,
当 prefixSize>4时取 =4*/
if(prefixSize>4){
return 4;
}else{
return prefixSize;
}
}
//***************************************************
//计算Jaro-winkler distance,返回Jaro-winkler distance
//****************************************************
public float getDistance(String s1, String s2) {
/*step4: 公式计算Jaro distance */
float j = ((m / s1.length() + m / s2.length() + (m – transpositions/2) / m)) / 3;
//如果Jaro distance比设定的修正的标准值小,那么返回,否则修正,得Jaro-winkler distance
float jw = j < getThreshold() ? j : j + 0.1f* prefixMatch(s1,s2,prefixSize) *(1 - j);
return jw;
}原文请找腾讯752018766辣'文.论,文.网
http://www.751com.cn3.2.3 算法相关补充说明
有些情况Jaro-winkler算法中必须与第一次出现的字符交换,实际上阻碍了最佳的调整方法,比如考虑ABCAWXYZ与BCAWXYZ的对应,这里 第一个字符A与 的A匹配,产生了三次半调整,尽管不合理,但会产生较好的分数。如表3-3:
表3-3
S1 A B C A W X Y Z
matchIndex 2 0 1 -1 3 4 5 6
S2 B C A W X Y Z
Index 0 1 2 3 4 5 6 7
而下面的情况虽然匹配次数一样,但没有交换次数(见表3-4)。在前面的字母中,没有任何一个对应是匹配的,所以winkler调整不适用。调换次数不能单由对应次序决定,这方面的算法仍有待改进。
表3-4
S1 A B C A W X Y Z
matchIndex -1 0 1 2 3 4 5 6
S2 B C A W X Y Z
Index 0 1 2 3 4 5 6 7
Jaro-winkler算法中给定的修正标准不同,得到的准确率也不一样,同时并不是标准越高得到的准确率越高。在语义上判断时,通过给定的最低标准处理后,再通过其他算法做进一步处理。在实际应用中,在干扰因素较多时要计算客观相似度,而不是取得较高的准确率,因此需要从其他方面来完善数据匹配技术。
结束语
本文介绍了数据质量问题及其使用某些匹配技术来实现记录连接,主要介绍了基于字符编辑的字符串匹配的编辑距离和Jaro-winkler算法并对其进行了实现。本文的两种算法不适合对大规模数据的匹配,因其开销大,而较适合对短字符串的匹配,效率高。当今对数据质量的研究课题和方法越来越多,越来越复杂,对相似重复记录的度量方法越来越多,本文中使用的基于字符编辑的字符串匹配技术只是数据连接研究的一部分。在“信息爆炸”时代,数据不仅仅来源于传统的数据库,而是越来越多的来自互联网。互联网是一个巨大复杂的异构数据环境,数据源也是异构的,更容易产生相似重复记录,造成数据冗余,需要将有用的数据进行整合处理即信息资源集成解决这样的问题。因此,匹配技术的研究对数据质量的优化和数据库的发展、信息集成的意义重大。
上一页 [1] [2] [3] [4] [5] [6] 下一页
java字符编辑的字符串匹配算法的实现+编辑距离算法+JARO算法 第5页下载如图片无法显示或论文不完整,请联系qq752018766