CN101561813B - 一种Web环境下的字符串相似度的分析方法 - Google Patents

一种Web环境下的字符串相似度的分析方法 Download PDF

Info

Publication number
CN101561813B
CN101561813B CN2009100117387A CN200910011738A CN101561813B CN 101561813 B CN101561813 B CN 101561813B CN 2009100117387 A CN2009100117387 A CN 2009100117387A CN 200910011738 A CN200910011738 A CN 200910011738A CN 101561813 B CN101561813 B CN 101561813B
Authority
CN
China
Prior art keywords
character
cost
distance
character string
meant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009100117387A
Other languages
English (en)
Other versions
CN101561813A (zh
Inventor
于戈
申德荣
朱命冬
寇月
聂铁铮
王振华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN2009100117387A priority Critical patent/CN101561813B/zh
Publication of CN101561813A publication Critical patent/CN101561813A/zh
Application granted granted Critical
Publication of CN101561813B publication Critical patent/CN101561813B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种Web环境下的字符串相似度分析方法,首先定义基本操作代价;对字符串预处理,识别它的词首字符和去除非实意字符;创建距离矩阵,通过创建匹配索引实现编辑距离的优化;然后,判断缩写词,先判断两个字符串是否是缩写关系,如果是缩写关系则进行距离优化;其中,缩写关系由2个因素决定:①判断两者是否有相似度;②判断两者的词首字符是否被匹配;之后对缩写词距离优化,通过减少连续插入字符和连续删除字符的代价实现。本发明的字符串相似度分析方法能很好地处理web中经常出现的省略、缩写和字符顺序颠倒情况,具有较高适用性,在Web未知环境下,具有较高的匹配精度。

Description

一种Web环境下的字符串相似度的分析方法
技术领域
本发明属于计算机Web数据库领域,特别适用于Web数据库集成系统重复记录识别过程中两条记录相似度的判定。
背景技术
在web环境中,对于需要进行相似度匹配的字符串,常常会遇到拼写错误、关键词顺序颠倒、缩写词或省略词匹配等情况,导致应用于web环境下的字符串相似度分析方法面临很多困难。因为典型的常用字符串相似度分析方法通常只针对某一特定情况。如:Levenshteindistance较适合于拼写错误,Jaro distance metric较适合于缩写词或省略词识别。在应用中,常常需要人工来判断何种环境下使用什么样的算法。然而,web环境中多是半结构和无结构数据,具体字符串的类型不容易判断,因此无法保证应用已有字符串匹配算法计算的字符串匹配的准确度。
Levenshtein Distance算法是首先由俄国科学家提出。在该方法中,求两字符串之间的相似度的基本步骤如下:首先,建立编辑距离矩阵,然后,依次由左向右,由上向下计算矩阵单元的值,最后,矩阵中最右下矩阵单元的值即为两字符串的编辑距离。该算法为较传统的算法,优点为过程简单,易于使用,但对逆序,缩写词匹配时效果不太好。
著名的Smih-Waternan算法,是在传统的Levenshtein distance基础上改进的算法。其基本步骤和Levenshtein Distance算法只在计算矩阵单元值时不同。Smih-Waternan算法通过引入删除补偿、插入补偿和替换补偿三个参数来计算矩阵单元值。当矩阵中所有的矩阵单元计算过以后,矩阵中最右下的矩阵单元值即为要计算的两个字符串的编辑距离。该算法主要适用于寻找局部相似序列对,其缺点是对于逆序词效果不太好。
字符串相似度的Jaro分析方法的主要思想是计算两个字符串σ1和σ2的Jaro距离为:,其中
Figure G2009100117387D00011
|σ1|,|σ2|分别为两个字符长度,c为两字符串中的“公共子串”长度,t为替换总数,替换总数计算方法为:将σ1中的第i个公共字符与σ2中的第i个字符做比较,若做比较的两个字符不相同则进行一次替换。该算法的优点是计算速度较快,对缩写词的识别准确率较高。但该算法仅适合缩写词普遍存在的场合,对不是缩写词进行比较时常常将两词的相似度错误提高,导致失真。
发明内容
为了解决已有技术的不足,本发明提供一种应用于Web环境具有适应性的字符串相似度分析方法——Ajusted-edit distance分析方法,能很好地处理web中经常出现的省略、缩写和字符顺序颠倒情况。
本发明的分析方法步骤如下:
步骤1.定义基本操作代价,由删除字符代价,插入字符代价,替换字符代价组成。其中:
删除字符代价cost(a—>ε),表示删除字符a的代价;
插入字符代价cost(ε—>a),表示插入字符a的代价;
替换字符代价cost(a—>a)和cost(a—>b),分别表示用字符a替换字符a的代价和用字符a替换字符b的代价;
步骤2.字符串预处理,包括识别词首字符和去除非实义字符。其中,词首字符指字符串中第一个实义字符或字符串中非实义字符后的第一个实义字符;非实义字符是指不具有实际意义的字符,包括空格、逗号、括号。
步骤3.计算距离矩阵,通过创建匹配索引实现字符串中字符位置的交换,进而优化编辑距离。
其中,匹配索引是指将一个字符串以最小代价的编辑操作序列转换成另一个字符串的过程中,原本被插入或删除的字符通过改变字符顺序能够以更小的代价进行替换的字符的索引。在进行实际交换之前,需要先计算一下两个字符串的距离变化,只有当距离变化小于0时才进行位置交换。
创建匹配索引方法的步骤如下:
A.计算两个字符串的距离矩阵;
B.将所有代价为0的字符对添加到匹配索引中;
C.通过距离矩阵选出一个代价最小的替换方案;
D.过滤匹配索引中在转换方案中已经采用的代价为0的替换方案;
E.过滤匹配索引中包含在其他索引对中出现的字符的索引对
F.结束
优化编辑距离的具体公式如下:
ed′(x,y)=ed(x,y)+distanceChange
dis tan ceChange = Σ i ∈ I 1 cos t ( x i ′ ) - Σ i ∈ I 1 cos t ( x i ) + Σ j ∈ P ρ * dis j - - - ( 1 )
其中,ed′(x,y)是指交换后两个字符串的距离;ed(x,y)是指交换前两个字符串的距离;distanceChange指距离所发生的变化,如果distanceChange小于0,则是距离变小,反之是变大;cost(xi′)是指字符xi交换为xi′后匹配的代价;cost(xi)是指字符xi在交换前匹配的代价;ρ是由用户设定的交换代价系数;disj是指需要交换位置的第j个编辑操作序列对在编辑操作序列中的距离;I1为在所要处理的匹配索引中涉及到字符串X中字符的位置集合;P为针对匹配索引需要进行交换处理的编辑操作序列对的集合。
步骤4.判断是否为缩写词,首先判断两个字符串是否为缩写关系;如果是缩写关系则进行距离优化。
所述的判断缩写包括2个判断因素:①判断两者是否有一定的相似度,有相似度时有缩写关系;②判断两者的词首字符是否被匹配,词首字符匹配时有缩写关系。
判断缩写词的公式如下:
sim ( x , y ) = ed ′ ( x , y ) Max ( | x | , | y | )
P xy = λ * sim ( x , y ) + ( 1 - λ ) * P x + P y 2 - - - ( 2 )
其中,sim(x,y)指字符串相似度;ed′(x,y)是指步骤3中交换字符后两个字符串的距离;|x|,|y|分别指字符字符串x,y的长度;Pxy指字符串x,y之间有一个是另一个的缩写词的可能性;λ指因素①的权重,Px,Py分别指串x,串y词首字符被以0的代价进行替换的比例。
缩写词距离优化,通过减少连续插入字符和连续删除字符的代价来实现。
缩写词距离优化公式如下:
ed″(x,y)=ed′(x,y)+distanceOptimized
dis tan ceOptimized = Σ d ∈ D cos tD ( count ( d ) ) + Σ i ∈ I cos tI ( count ( i ) )
cos tD ( n ) = Σ i = 0 n - 1 cos t ( a - > ϵ ) * η i - Σ d ∈ D cos t ( a - > ϵ ) count ( d ) - - - ( 3 )
cos tI ( n ) = Σ i = 0 n - 1 cos tI ( ϵ - > a ) * η i - Σ i ∈ I cos t ( ϵ - > a ) count ( i )
其中,ed″(x,y)是指缩写词优化后两个字符串的距离;ed′(x,y)是指步骤3中交换字符后两个字符串的距离;distanceOptimized指优化后距离所发生的变化;集合D,I分别指匹配中出现连续删除和连续插入的集合;costD(n),costI(n)分别指连续删除、连续插入n个字符的代价;count(d),count(i)分别指d,i中连续删除和插入字符的个数;η是代价衰减系数;d,i分别指集合中的某个连续插入和删除操作,其中d,i∈{0,…,n-1},n为连续删除或连续插入的个数。
本发明的有益效果:本发明的字符串相似度分析方法具有较高适用性,Web未知环境下,具有较高的匹配精度。另外,依据相似度分析方法的步骤可知:字符串预处理的时间复杂度为O(n)(设两个字符串最长为n);计算n×n的矩阵的时间复杂度为O(n2);根据索引改变一个串中一些字符的顺序的时间复杂度为O(n);在最坏情况下,两个字符串中每个字符都为词首字符,此时时间复杂度为O(n2);如果判断为缩写词,则需要进行距离优化,需要遍历一遍匹配路径,时间复杂度为O(n)。整个分析方法的时间复杂度为O(n2)。
附图说明:
图1为本发明实施例字符串x和y的距离矩阵分析图。
图2为本发明实施例创建匹配索引算法流程图。
图3为本发明实施例对Electron数据集重复字段识别的结果图。
图4为本发明实施例对Book数据集name字段重复字段识别的结果图。
图5为本发明实施例运行时间与数据集大小的关系图。
具体实施方式:
本发明的一个实施例,采用从Deep Web中抽取的一本书《java编程思想第四版》作者的两种表达形式,如下:
x=“(美)Bruce Eckel”;y=“Eckel(美)”。
本发明方法的具体实施步骤如下:
步骤1.定义基本操作代价,其中C(a—>a)=0,C(a—>b)=1,C(a—>ε)=1,C(ε—>a)=1。
步骤2.根据输入的字符串X和字符串Y对字符串进行预处理,首先识别两字符串中各单词的首字符,分别为(“美”,“B”,“E”),(“E”,“美”);然后,去除x,y中的非实义字符后:x=“美BruceEckel”;y=“Eckel美”。
步骤3.以x为行,y为列创建距离矩阵,如图1所示。根据距离矩阵我们可以得到一条匹配路径:{(美—>ε),(B—>ε),(r—>ε),(u—>ε),(c—>ε),(e—>ε),(E—>E),(c—>c),(k—>k),(l—>l),(e—>e),(ε—>美)}。因为在计算距离矩阵的过程中x中的“美”与y中的“美”匹配代价为0,但在匹配路径中两者并没有匹配,故匹配索引为{(1,6)}。根据匹配索引交换过字符后,匹配路径变为:{(B—>ε),(r—>ε),(u—>ε),(c—>ε),(e—>ε),(E—>E),(c—>c),(k—>k),(l—>l),(e—>e),(美—>美)}。
用户定义交换代价系数ρ=0.1,distanceChange=0+0-(1+1)+0.1*(12-1)=-0.9。所以交换后x,y的距离变为:ed′(x,y)=7-0.9=6.1。
图2为创建匹配索引算法的流程图。其具体实施步骤如下:
A.计算两个字符串的编辑距离矩阵;
B.将所有代价为0的字符对添加到匹配索引中;
C.通过编辑矩阵选出一个代价最小的替换方案;
D.过滤匹配索引中在转换方案中已经采用的代价为0的替换方案;
E.过滤匹配索引中包含在其他索引对中出现的字符的索引对;
F.结束。
步骤4.用户自定义缩写判定阀值φ=0.8,代价衰减系数η=0.75,λ=0.4。
Figure DEST_PATH_GSB00000149545400041
Figure DEST_PATH_GSB00000149545400042
所以需要进行缩写优化。因为在匹配路径中只有5个连续的删除,所以distanceOptimized=1+0.75+0.56+0.42+0.32-5=-1.95。ed″(x,y)=6.1-1.95=4.15。最终x,y的相似度 sim ( x , y ) = 1 - ed ′ ( x , y ) Max ( | x | , | y | ) = 1 - ed ′ ′ ( x , y ) Max ( | x | , | y | ) = 1 - 4.15 11 = 0.62 .
本发明(Ajusted-edit distance分析方法)的性能测试:在各个数据集上的测试结果图3、图4和图5所示。图3、图4分别是对Electron数据集和Book数据集的name字段进行重复字符串检验的查全率-查准率曲线图。图5是三个字符串匹配算法的运行时间与数据集大小关系图。从图3和4可以看出:recall比较高或比较低时,Adjusted-edit distance分析方法的precise并不占优势,但随着recall的调整,它的总体优势会慢慢显现出来。从图5可以看出:随着数据集大小的增长,Adjusted-edit distance分析方法的运行时间大约维持在Needleman Wunch算法、Jaro-Winkler算法运行时间的固定倍数。

Claims (1)

1.一种Web环境下的字符串相似度分析方法,其特征在于:该方法包括如下步骤:
步骤1.定义基本操作代价,基本操作代价由删除字符代价、插入字符代价、替换字符代价组成;
步骤2.字符串预处理,识别词首字符和去除非实义字符;所述的词首字符是指字符串中第一个实义字符或字符串中非实义字符后的第一个实义字符;非实义字符是指不具有实际意义的字符,包括空格、逗号、括号;
步骤3.计算编辑距离,通过创建匹配索引实现字符串中字符位置的交换,进而优化编辑距离;其中匹配索引是指将一个字符串以最小代价的编辑操作序列转换成另一个字符串的过程中,原本被插入或删除的字符通过改变字符顺序能够以更小的代价进行替换的字符的索引;所述的匹配索引,在进行字符串交换之前,需要先计算一下两个字符串的距离变化,只有当距离变化小于0时才进行位置交换;
具体公式如下:
ed′(x,y)=ed(x,y)+distanceChange
dis tan ceChange = Σ i ∈ I 1 cos t ( x i ′ ) - Σ i ∈ I 1 cos t ( x i ) + Σ j ∈ P ρ * dis j - - - ( 1 )
其中,ed′(x,y)是指交换后两个字符串的距离;ed(x,y)是指交换前两个字符串的距离;distanceChange指距离所发生的变化,如果distanceChange小于0,则是距离变小,反之是变大;cost(xi′)是指字符xi交换为字符xi′后匹配的代价;cost(xi)是指字符xi在交换前匹配的代价;ρ是由用户设定的交换代价系数;disj是指需要交换位置的第j个编辑操作序列对在编辑操作序列中的距离;I1为在所要处理的匹配索引中涉及到字符串x中字符的位置集合;P为针对匹配索引需要进行交换处理的编辑操作序列对的集合;
创建匹配索引的方法如下:
A.计算两个字符串的距离矩阵;
B.将所有代价为0的字符对添加到匹配索引中;
C.通过距离矩阵选出一个代价最小的替换方案;
D.过滤匹配索引中在转换方案中已经采用的代价为0的替换方案;
E.过滤匹配索引中包含在其他索引对中出现的字符的索引对;
F.结束;
步骤4.判断是否为缩写词,首先判断两个字符串是否是缩写关系;如果是缩写关系则进行距离优化;其中,缩写关系由2个因素决定:①判断两者是否有相似度,有相似度时有缩写关系;②判断两者的词首字符是否被匹配,词首字符匹配时有缩写关系;缩写词距离优化,通过减少连续插入字符和连续删除字符的代价实现,所述的判断缩写词的公式如下:
sim ( x , y ) = ed ′ ( x , y ) Max ( | x | , | y | )
P xy = λ * sim ( x , y ) + ( 1 - λ ) * P x + P y 2 - - - ( 2 )
其中,sim(x,y)指字符串相似度;ed′(x,y)是指步骤3中交换字符后两个字符串的距离;|x|,|y|分别指字符字符串x,y的长度;Pxy指字符串x,y之间有一个是另一个的缩写词的可能性;λ指因素①的权重,Px,Py分别指串x,串y词首字符被以0的代价进行替换的比例;
所述的缩写词距离优化具体公式如下所示:
ed″(x,y)=ed′(x,y)+distanceOptimized
dis tan ceOptimized = Σ d ∈ D cos tD ( count ( d ) ) + Σ i ∈ I cos tI ( count ( i ) )
cos tD ( n ) = Σ i = 0 n - 1 cos t ( a → ϵ ) * η i - Σ d ∈ D cos t ( a → ϵ ) count ( d ) - - - ( 3 )
cos tI ( n ) = Σ i = 0 n - 1 cos tI ( ϵ → a ) * η i - Σ i ∈ I cos t ( ϵ → a ) count ( i )
其中,ed″(x,y)是指缩写词优化后两个字符串的距离;ed′(x,y)是指步骤3中交换字符后两个字符串的距离;distanceOptimized指优化后距离所发生的变化;集合D,I分别指匹配中出现连续删除和连续插入的集合;costD(n),costI(n)分别指连续删除、连续插入n个字符的代价;count(d),count(i)分别指d,i中连续删除和插入字符的个数;η是代价衰减系数;d,i分别指集合中的某个连续插入和删除操作,其中,d,i∈{0,…,n-1},n为连续删除或连续插入的个数。
CN2009100117387A 2009-05-27 2009-05-27 一种Web环境下的字符串相似度的分析方法 Expired - Fee Related CN101561813B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100117387A CN101561813B (zh) 2009-05-27 2009-05-27 一种Web环境下的字符串相似度的分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100117387A CN101561813B (zh) 2009-05-27 2009-05-27 一种Web环境下的字符串相似度的分析方法

Publications (2)

Publication Number Publication Date
CN101561813A CN101561813A (zh) 2009-10-21
CN101561813B true CN101561813B (zh) 2010-09-29

Family

ID=41220620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100117387A Expired - Fee Related CN101561813B (zh) 2009-05-27 2009-05-27 一种Web环境下的字符串相似度的分析方法

Country Status (1)

Country Link
CN (1) CN101561813B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213690B2 (en) 2010-04-29 2015-12-15 Hewlett Packard Enterprise Development Lp Method, system, and appartus for selecting an acronym expansion
JP2011243148A (ja) * 2010-05-21 2011-12-01 Sony Corp 情報処理装置、情報処理方法及びプログラム
CN102122298B (zh) * 2011-03-07 2013-02-20 清华大学 一种中文相似性匹配方法
CN102193993B (zh) * 2011-04-20 2013-09-04 北京百度网讯科技有限公司 用于确定字符串信息间相似度信息的方法、装置和设备
CN102184169B (zh) * 2011-04-20 2013-06-19 北京百度网讯科技有限公司 用于确定字符串信息间相似度信息的方法、装置和设备
CN103399907A (zh) * 2013-07-31 2013-11-20 深圳市华傲数据技术有限公司 一种基于编辑距离计算中文字符串相似度的方法及装置
CN104158840B (zh) * 2014-07-09 2017-07-07 东北大学 一种分布式计算图节点相似度的方法
CN105589843B (zh) * 2014-10-24 2019-02-26 科大讯飞股份有限公司 一种文本字串匹配方法及系统
CN104484391B (zh) * 2014-12-11 2017-11-21 北京国双科技有限公司 字符串相似度的计算方法和装置
CN105446957B (zh) * 2015-12-03 2018-07-20 小米科技有限责任公司 相似性确定方法、装置及终端
CN106126494B (zh) * 2016-06-16 2018-12-28 上海智臻智能网络科技股份有限公司 同义词发现方法及装置、数据处理方法及装置
CN106168946A (zh) * 2016-06-24 2016-11-30 中国科学院信息工程研究所 一种识别用户名缩写现象的方法
CN106844481B (zh) * 2016-12-23 2021-01-05 北京信息科技大学 字体相似度及字体替换方法
CN110019418B (zh) * 2018-01-02 2021-09-14 中国移动通信有限公司研究院 对象描述方法及装置、标识体系、电子设备和存储介质
CN108536657B (zh) * 2018-04-10 2021-09-21 百融云创科技股份有限公司 人为填写的地址文本相似度处理方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1434400A (zh) * 2002-01-22 2003-08-06 住友电气工业株式会社 字符串相似度计算方法、装置、程序和存储媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1434400A (zh) * 2002-01-22 2003-08-06 住友电气工业株式会社 字符串相似度计算方法、装置、程序和存储媒体

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Liu Linan etc..Duplicate identification model for deep web.《Journal of Southeast University(English Edition)》.2008,第24卷(第3期),315-317. *
李彬.计算字符串相似度的矩阵算法.《软件技术》.2007,(第24期),106-108,111. *
申德荣等.SKM:一种基于模式结构和已有匹配知识的模式匹配模型.《软件学报》.2009,第20卷(第2期),327-338. *
章成志.基于多层特征的字符串相似度计算模型.《情报学报》.2005,第24卷(第6期),696-701. *

Also Published As

Publication number Publication date
CN101561813A (zh) 2009-10-21

Similar Documents

Publication Publication Date Title
CN101561813B (zh) 一种Web环境下的字符串相似度的分析方法
CN110309343B (zh) 一种基于深度哈希的声纹检索方法
CN103885937B (zh) 基于核心词相似度判断企业中文名称重复的方法
CN110781679B (zh) 一种基于关联语义链网络的新闻事件关键词挖掘方法
CN109933792B (zh) 基于多层双向lstm和验证模型的观点型问题阅读理解方法
CN111899089A (zh) 基于知识图谱的企业风险预警方法及系统
CN102402561B (zh) 一种搜索方法和装置
CN112966954A (zh) 一种基于时间卷积网络的防洪调度方案优选方法
CN107679031B (zh) 基于堆叠降噪自编码机的广告博文识别方法
CN102682104A (zh) 一种查找相似文本的方法及连接位相似性度量算法
CN109325019A (zh) 数据关联关系网络构建方法
Hakak et al. Partition-based pattern matching approach for efficient retrieval of Arabic text
CN112365139A (zh) 一种图卷积神经网络下的人群危险程度分析方法
CN108334573B (zh) 基于聚类信息的高相关微博检索方法
CN113705099A (zh) 基于对比学习的社交平台谣言检测模型构建方法及检测方法
CN109213869B (zh) 基于多源数据的热点技术预测方法
CN111382333B (zh) 基于案件相关性联合学习与图卷积的新闻文本句中案件要素抽取方法
CN111460147A (zh) 一种基于语义增强的标题短文本分类方法
CN115272776B (zh) 基于双路卷积与双注意的高光谱图像分类方法及存储介质
CN113283243B (zh) 一种实体与关系联合抽取的方法
CN106816871B (zh) 一种电力系统状态相似性分析方法
Ju et al. A robust approach to adversarial attack on tabular data for classification algorithm testing
CN114722920A (zh) 一种基于图分类的深度图卷积模型钓鱼账户识别方法
CN109189915A (zh) 一种基于深度相关匹配模型的信息检索方法
CN109325159A (zh) 一种微博热点事件挖掘方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100929

Termination date: 20150527

EXPY Termination of patent right or utility model