一种基于编辑距离的数据相似度检测方法技术

技术编号:19964379 阅读:48 留言:0更新日期:2019-01-03 12:54
本发明专利技术揭示了一种基于编辑距离的数据相似度检测方法,该方法包括以下步骤:步骤S1:输入字符串str1,str2;步骤S2:采用动态规划方法获得LD(str1,str2),LCS(str1,str2),LCCS(str1,str2);所述步骤S2包括以下步骤:S21:计算字符串间的编辑距离L

A Data Similarity Detection Method Based on Editing Distance

The invention discloses a data similarity detection method based on edit distance, which includes the following steps: (1) input string str1, str2; (2) obtain LD (str1, str2), LCS (str1, str2), LCCS (str1, str2) using dynamic programming method; and (2) include the following steps: S21: calculate edit distance between strings L.

【技术实现步骤摘要】
一种基于编辑距离的数据相似度检测方法
本专利技术涉及一种基于编辑距离的数据相似度检测方法,属于大数据数据预处理领域。
技术介绍
随着物联网和“互联网+”时代的迅速发展,全球已进入了大数据时代。毫无疑问,大数据隐含着巨大的社会、经济、科研价值,已引起了各行各业的高度重视。如果能对大数据进行有效地挖掘,将对社会经济和科学研究发展产生巨大的推动作用,同时也孕育着前所未有的机遇。一般情况下,数据挖掘总是假设数据是“干净”和一致的,然而现实中感知数据往往是不完整的、含有噪声的,且存在不一致性,这些数据表现出的质量问题将会严重影响数据分析的结果。因此,对采集到的大数据首先进行预处理,提高数据质量,对大数据分析和研究具有重要的意义。在大数据预处理中,记录相似重复检测对提高数据质量起着至关重要的作用。在相似重复记录检测过程中,相似度的计算是检测相似重复记录的基础。为此,需要研究高精度的相似度计算方法。在本专利技术中,将以字符类型数据作为数据为例来对数据相似度计算方法进行说明。目前,根据字符串的字面相似性,可以将数据相似度检测方法分为基于统计相关性和基于语义相似性两类方法。其中,应用最广泛的是基于字面相似度的编辑距离(LD,LevenshteinDistance)方法。在此方法中,编辑距离是指由原字符串变化到另外一个字符串所需的最少编辑次数或最小代价,编辑即是指对字符串指定位置的单个字符进行插入、删除和替换的操作。近年来,针对不同应用需求对LD的改进方法层出不穷,韩安琪等人(韩安琪等人,中国,“基于改进编辑距离的字符串相似度求解算法”,计算机工程,2014,第40卷第1期)提出一种联合编辑距离和最长公共子序列(LCS,LongestCommonSubsequence)的数据相似度检测方法,由于该方法在LD的基础上采用了LCS进行进一步的区分,这使得利用该方法的获得的相似度更加精确。然而,LD与LCS联合的方法在一些情况下仍会有弊端,如字符串T=”abcd”和S1=”abet”、S2=”afc比较相似度时,根据该联合方法得出S1和S2与目标字符串T具有相同的相似度,而明显S1与T的相似度是要大于S2与T的相似度。为此,ShengnanZhang等人(ShengnanZhang等,中国,“ResearchonStringSimilarityAlgorithmbasedonLevenshteinDistance”,IAEAC,2017)提出一种基于相似字符位置的联合LD与最长公共子串(LCCS,LongestCommonSubstring)的相似度检测方法,然而该方法认为首先出现相似字符的字串比后出现相似字符的字串具有更高的相似度,这将与实际不符。因此,需要研究一种高精度的相似度检测方法。
技术实现思路
本专利技术的目的就是为了解决现有技术中存在的上述问题,提出一种基于编辑距离的数据相似度检测方法。本专利技术的目的将通过以下技术方案得以实现:一种基于编辑距离的数据相似度检测方法,该方法包括以下步骤:步骤S1:输入字符串str1,str2;步骤S2:采用动态规划方法获得LD(str1,str2),LCS(str1,str2),LCCS(str1,str2);所述步骤S2包括以下步骤:S21:计算字符串间的编辑距离Ld;字符串str1和str2的长度分别为m和n,构造矩阵[LD]n+1,m+1,利用动态规划方法获得该矩阵元素,即在该矩阵中,矩阵右下角元素LD(n,m)即为字符串str1和str2之间的编辑距离Ld;S22:计算字符串间的最长公共子序列Lcs;Lcs是两个字符串中最长的共同子序列,字符串str1和str2的长度分别为m和n,构造矩阵[L]n+1,m+1,利用动态规划方法获得该矩阵元素,即在该矩阵中,矩阵右下角元素L(n,m)即为字符串str1和str2之间的最长公共子序列长度Lcs;S23:计算字符串间的最长公共子串Lccs;字符串str1和str2的长度分别为m和n,构造二维矩阵[L]n+1,m+1利用动态规划方法获得该矩阵元素,即在该矩阵中,矩阵的斜对角线上找到值为1的单元格及其对应的字符串,最长的字符为Lccs;步骤S3:联合Ld,Lcs,Lccs获得字符串相似度sim。定义新的相似度公式为式中,l为平衡因子,取0.1,len为两字符串中较长串的长度。优选地,在所述步骤S22中字符串str1和str2的相对位置为不连续。优选地,在所述步骤S23中最长公共子串Lccs中最长的公共子序列为连续的。优选地,在所述步骤S23中,当矩阵需要填充1时,直接等于左上角的值加1,则矩阵的最大元素为Lccs的长度。本专利技术技术方案的优点主要体现在:本专利技术公开了一种基于编辑距离的数据相似度检测方法,主要用于大数据数据预处理等领域,具体为在编辑距离的数据相似度检测方法的基础上,进一步采用最长公共子串作为区分因素,定义了新的相似度计算公式,改进后方法的字符串相似性结果更加明确,合理,准确,具有更好的通用性。附图说明图1为本专利技术一种基于编辑距离的数据相似度检测方法的流程图。图2为利用本专利技术技术与现有方法获得的数据相似度对比曲线。具体实施方式本专利技术的目的、优点和特点,将通过下面优选实施例的非限制性说明进行图示和解释。这些实施例仅是应用本专利技术技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本专利技术要求保护的范围之内。本专利技术揭示了一种基于编辑距离的数据相似度检测方法,对于输入的字符串str1和str2,利用动态规划方法分别计算出编辑距离(LD),最长公共子序列(LCS),最长公共子串(LCCS),然后联合LD,LCS,LCCS获得字符串str1和str2的相似度。下面结合仿真分析本专利技术的性能。在仿真中考虑一组数据分析方法的准确性,适用性和区分性。选择源字符串S=”expect”,目标字符串T={“spectator”,“exercise”,“expceted”,“bespectacled”,“exempt”,“expedite”,“expdctse”,“expecting”,“expecd”,“excect”},分别对LD方法、联合LD与LCS方法,以及本专利技术方法进行仿真。如图1所示,该方法包括以下步骤:步骤S1:输入字符串str1,str2;步骤S2:采用动态规划方法获得LD(str1,str2),LCS(str1,str2),LCCS(str1,str2);在本技术方案中,LD指字符串间的编辑距离,又称为Levenshtein距离。在此方法中,编辑距离是指由原字符串变化到另外一个字符串所需的最少编辑次数或最小代价,编辑即是指对字符串指定位置的单个字符进行插入、删除和替换的操作。一般来说,两个字符串的编辑距离越小,则它们越相似。如果两个字符串相等,则它们的编辑距离为0(不需要任何操作),两个字符串的编辑距离肯定不超过它们的最大长度。具体地,进一步地,所述步骤S2包括以下步骤:步骤S21:计算字符串间的编辑距离Ld;考虑长度分别为m和n的两个字符串str1和str2,构造矩阵[LD]n+1,m+1,利用动态规划方法获得该矩阵元素,即在该矩阵中,矩阵右下角元素LD(n,m)即为字符串str1和str2之间的编辑距离Ld。步骤S22本文档来自技高网
...

【技术保护点】
1.一种基于编辑距离的数据相似度检测方法,其特征在于:该方法包括以下步骤:步骤S1:输入字符串str1,str2;步骤S2:采用动态规划方法获得LD(str1,str2),LCS(str1,str2),LCCS(str1,str2);所述步骤S2包括以下步骤:S21:计算字符串间的编辑距离Ld;字符串str1和str2的长度分别为m和n,构造矩阵[LD]n+1,m+1,利用动态规划方法获得该矩阵元素,即

【技术特征摘要】
2018.03.02 CN 20181017760601.一种基于编辑距离的数据相似度检测方法,其特征在于:该方法包括以下步骤:步骤S1:输入字符串str1,str2;步骤S2:采用动态规划方法获得LD(str1,str2),LCS(str1,str2),LCCS(str1,str2);所述步骤S2包括以下步骤:S21:计算字符串间的编辑距离Ld;字符串str1和str2的长度分别为m和n,构造矩阵[LD]n+1,m+1,利用动态规划方法获得该矩阵元素,即在该矩阵中,矩阵右下角元素LD(n,m)为字符串str1和str2之间的编辑距离Ld;S22:计算字符串间的最长公共子序列Lcs;Lcs是两个字符串中最长的共同子序列,字符串str1和str2的长度分别为m和n,构造矩阵[L]n+1,m+1,利用动态规划方法获得该矩阵元素,即在该矩阵中,矩阵右下角元素L(n,m)为字符串str1和str2之间...

【专利技术属性】
技术研发人员:杨丽花李蕾
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1