CN106997335A - 相同字符串的判定方法及装置 - Google Patents

相同字符串的判定方法及装置 Download PDF

Info

Publication number
CN106997335A
CN106997335A CN201610052823.8A CN201610052823A CN106997335A CN 106997335 A CN106997335 A CN 106997335A CN 201610052823 A CN201610052823 A CN 201610052823A CN 106997335 A CN106997335 A CN 106997335A
Authority
CN
China
Prior art keywords
character string
similarity
length
editing distance
character
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.)
Granted
Application number
CN201610052823.8A
Other languages
English (en)
Other versions
CN106997335B (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610052823.8A priority Critical patent/CN106997335B/zh
Publication of CN106997335A publication Critical patent/CN106997335A/zh
Application granted granted Critical
Publication of CN106997335B publication Critical patent/CN106997335B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • G06F40/129Handling non-Latin characters, e.g. kana-to-kanji conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种相同字符串的判定方法及装置,其中的方法包括:计算第一字符串与第二字符串的编辑距离;基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度;基于所述相似度判定所述第一字符串与所述第二字符串是否相同。本申请可以提升相似度计算的准确度,在基于相似度判定第一字符串与第二字符串是否相同时,可以显著提升判定结果的准确性。

Description

相同字符串的判定方法及装置
技术领域
本申请涉及通信领域,尤其涉及一种相同字符串的判定方法及装置。
背景技术
在电商平台中,为避免用户上传虚假地址信息造成欺诈,平台通常会帮助商户对用户上传的工作地址或者家庭地址进行验证,来确定用户上传的地址是不是该用户真实有效的地址。例如,平台可以将用户提供给商户的地址,与用户在平台中预留的真实收件地址进行比对,来确定是否为同一个地址。然而,在实际应用中,用户提供给商户的地址,与用户在平台中预留的收件地址,长度上可能会存在一定的差异,但实际上仍然为同一地址。因此针对这种情况,平台在判定这两个地址是否为同一个时,就可能会存在误判。
发明内容
本申请提出一种相同字符串的判定方法,该方法包括:
计算第一字符串与第二字符串的编辑距离;基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度;
基于所述相似度判定所述第一字符串与所述第二字符串是否相同。
可选的,所述计算第一字符串与第二字符串的编辑距离包括:
针对所述第一字符串以及所述第二字符串进行unicode编码;
计算unicode编码后的所述第一字符串与所述第二字符串的编辑距离。
可选的,所述基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配包括:
计算所述第一字符串与所述第二字符串的长度中的最大值和最小值;
将所述最大值减去所述编辑距离,或者将所述最小值加上所述编辑距离,以对所述第一字符串和所述第二字符串的长度进行适配。
可选的,所述计算长度进行适配后的所述第一字符串与所述第二字符串的相似度包括:
计算减去所述编辑距离后的所述最大值与所述最小值的比值,基于该比值表征所述第一字符串与所述第二字符串的相似度;或者
计算所述最大值与加上所述编辑距离后的所述最小值的比值,基于该比值表征所述第一字符串与所述第二字符串的相似度。
可选的,所述基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度包括:
基于预设的相似度计算公式计算所述第一字符串与所述第二字符串的相似度;
所述相似度计算公式包括:
其中,x表示第一字符串,|x|表示第一字符串的长度;y表示第二字符串,|y|表示第二字符串的长度;max(|x|,|y|)表示第一字符串与第二字符串的长度中的最大值;min(|x|,|y|)表示第一字符串与第二字符串的长度中的最小值;ds表示第一字符串与第二字符串的编辑距离;C表示修正参数,为大于或者等于0的常数。
可选的,所述基于所述相似度判定所述第一字符串与所述第二字符串是否相同包括:
判断计算出的所述相似度是否达到预设的阈值;
当计算出的所述相似度达到预设的阈值时,判定所述第一字符串与所述第二字符串相同;
当计算出的所述相似度未达到预设的阈值时,判定所述第一字符串与所述第二字符串不相同。
本申请还提出一种相同字符串的判定装置,该装置包括:
第一计算模块,用于计算第一字符串与第二字符串的编辑距离;第二计算模块,用于基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度;
判定模块,用于基于所述相似度判定所述第一字符串与所述第二字符串是否相同。
可选的,所述第一计算模块具体用于:
针对所述第一字符串以及所述第二字符串进行unicode编码;
计算unicode编码后的所述第一字符串与所述第二字符串的编辑距离。
可选的,所述第二计算模块具体用于:
计算所述第一字符串与所述第二字符串的长度中的最大值和最小值;
将所述最大值减去所述编辑距离,或者将所述最小值加上所述编辑距离,以对所述第一字符串和所述第二字符串的长度进行适配。
可选的,所述第二计算模块进一步用于:
计算减去所述编辑距离后的所述最大值与所述最小值的比值,基于该比值表征所述第一字符串与所述第二字符串的相似度;或者
计算所述最大值与加上所述编辑距离后的所述最小值的比值,基于该比值表征所述第一字符串与所述第二字符串的相似度。
可选的,所述第二计算模块进一步用于:
基于预设的相似度计算公式计算所述第一字符串与所述第二字符串的相似度;
所述相似度计算公式包括:
其中,x表示第一字符串,|x|表示第一字符串的长度;y表示第二字符串,|y|表示第二字符串的长度;max(|x|,|y|)表示第一字符串与第二字符串的长度中的最大值;min(|x|,|y|)表示第一字符串与第二字符串的长度中的最小值;ds表示第一字符串与第二字符串的编辑距离;C表示修正参数,为大于或者等于0的常数。
可选的,所述判定模块具体用于:
判断计算出的所述相似度是否达到预设的阈值;
当计算出的所述相似度达到预设的阈值时,判定所述第一字符串与所述第二字符串相同;
当计算出的所述相似度未达到预设的阈值时,判定所述第一字符串与所述第二字符串不相同。
本申请中,通过计算第一字符串与第二字符串的编辑距离,基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度;然后基于所述相似度判定所述第一字符串与所述第二字符串是否相同。由于在本申请中基于编辑距离对第一字符串和第二字符串的长度进行了适配,因此可以减少第一字符串和第二字符串的长度差异,在针对长度适配后的第一字符串和第二字符串进行相似度计算时,可以最大程度的降低字符串的长度差异对相似度计算结果的影响,提升相似度计算的准确度,从而在基于相似度判定第一字符串与第二字符串是否相同时,可以显著提升判定结果的准确性。
附图说明
图1是本申请一实施例提供的一种相同字符串的判定方法的流程图;
图2是本申请一实施例提供的一种相同字符串的判定装置的逻辑框图;
图3是本申请一实施例提供的承载所述一种相同字符串的判定装置的服务端的硬件结构图。
具体实施方式
在相关技术中,在判定两个字符串(比如详细地址)是否为相同的字符串时,通常是通过计算这两个字符串之间的相似度,然后通过相似度来判定这两个字符串是否相同。
其中,在计算两个字符串之间的相似度时,通常可以通过以下方式来实现:
在示出的一种实施方式中,可以对需要进行相同判定的两个字符串进行分词处理,将这两个字符串转换为结构化的数据,然后基于结构化的数据来计算这两个字符串的相似度;例如,可以设定一个分词长度,对这两个字符串按照该分词长度进行文本切分,得到若干长度相同的文本切分单元,然后基于文本切分得到的这些文本切换单元,逐个进行比对来计算这两个字符串的相似度。
然而,通过这种方式,需要对字符串进行文本切分,在计算相似度时需要逐个比对切换得到的文本切换单元,因此实现较复杂。
在示出的另一种实施方式中,可以基于需要进行判定的两个字符串之间的编辑距离,来计算这两个字符串的相似度,然后基于计算得到的相似度来判定这两个字符串是否为同一个。
其中,在基于编辑距离计算相似度时,相似度的定义通常可以通过如下公式来表征:
上述公式中,S表示相似度;ds表示编辑距离(Levenshtein距离);L表示字符串长度。
当通过上述公式来计算第一字符串x与第二字符串y的相似度时,上述L的取值根据实际的需求可以是min(|x|,|y|)、max(|x|,|y|)或者|x|+|y|中的任意一个。
其中,在上述公式中,|x|表示第一字符串的字符长度;|y|表示第二字符串的字符长度;min(|x|,|y|)表示第一字符串和第二字符串中字符长度的最小值;max(|x|,|y|)表示第一字符串和第二字符串中字符长度的最大值。
然而,对于如地址一样的字符串,在判断这两个字符串是否表达相同的含义时,有的时候上面的相似度公式给出的两个字符串并不相似,但是实际上这两个字符串确表示了相同的地址。
例如,在不同平台采集到的同一个用户的详细地址,在字符长度上存在一定的差异(该差异可能是由于用户在不同平台中输入不规范导致的)。假设第一地址为“杭州市西湖区黄龙时代广场B座17楼”;第二地址为“杭州市西湖区黄龙时代广场B座17楼蚂蚁金服法务部”。第一地址和第二地址虽然字符长度存在差异,但实质上为同一个地址。
在通过上述公式计算第一地址和第二地址的相似度,并基于计算得到的相似度来判定第一地址和第二地址是否为相同的地址时,就有可能造成误判,将第一地址和第二地址误判为不同的地址。
有鉴于此,本申请提出一种相同字符串的判定方法,通过计算第一字符串与第二字符串的编辑距离,基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度;然后基于所述相似度判定所述第一字符串与所述第二字符串是否相同。由于在本申请中基于编辑距离对第一字符串和第二字符串的长度进行了适配,因此可以减少第一字符串和第二字符串的长度差异,在针对长度适配后的第一字符串和第二字符串进行相似度计算时,可以最大程度的降低字符串的长度差异对相似度计算结果的影响,提升相似度计算的准确度,从而在基于相似度判定第一字符串与第二字符串是否相同时,可以显著提升判定结果的准确性。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种相同字符串的判定方法,应用于服务端,所述方法执行以下步骤:
步骤101,计算第一字符串与第二字符串的编辑距离;上述服务端可以包括服务器、服务器集群或者基于服务器集群构建的云平台;例如,以电子商务的应用场景为例,上述服务端可以是电子商务提供商的云平台,该云平台可以协助商户对用户上传的工作地址或者家庭地址与用户预留在平台中的真实收件地址比对,来确定用户上传的地址是不是该用户真实有效的地址,从而避免用户上传虚假地址信息造成欺诈。
上述字符串可以包括用户的详细地址;其中,上述第一字符串和第二字符串可以是长度互不相同的同一个详细地址。
例如,上述第一字符串和第二字符串可以是用户在不同的平台中预留的详细地址,由于不同的平台中输入格式上的差异,用户在不同的平台中输入同一个详细地址时,可能造成长度存在一定差异。
假设在电商平台中,用户在平台中预留的详细地址为“杭州市西湖区黄龙时代广场B座17楼蚂蚁金服法务部”,用户提供给商家的详细地址为“杭州市西湖区黄龙时代广场B座17楼”,虽然这两个地址长度存在差异,但实质上为同一个地址。
上述编辑距离,可以用于表征将一个字符串转换为另一个字符串的最小的编辑次数。其中,对字符串的编辑操作通常可以包括增加,删除,替换以及换位等操作。
当将一个字符串通过增加一个字符串,删除一个字符串,替换一个字符串以及换位一个字符串等操作转换为另一个字符串时,通过统计上述编辑操作的次数,就可以得到这两个字符串之间的编辑距离。例如,假设第一字符串为ABCD,第二字符串为AFCDE,第一字符串通过将字符A替换为字符F,并增加一个字符E就可以转换为第二字符串,整个过程中执行了替换以及增加两次编辑操作,因此第一字符串和第二字符串的编辑距离为2。
在本例中,服务端在计算第一字符串与第二字符串的编辑距离时,可以统计将第一字符串转换第二字符串时的编辑次数,然后将统计出的编辑次数作为第一字符串与第二字符串的编辑距离。
其中,在实现时,上述编辑距离可以采用通用的Levenshtein距离,也可以采用Damerau–Levenshtein距离。
通用的Levenshtein距离通常只统计增加,删除,替换等编辑操作的次数,因此服务端采用通用的Levenshtein距离时,可以统计将第一字符串通过增加一个字符,删除一个字符以及替换一个字符转换为第二字符串时的编辑次数,然后将该编辑次数设置为第一字符串与第二字符串之间的编辑距离。
Damerau–Levenshtein距离通常需要统计增加,删除,替换以及换位等编辑操作的次数,因此服务端采用Damerau–Levenshtein距离时,可以统计将第一字符串通过增加一个字符,删除一个字符、替换一个字符以及换位一个字符转换为第二字符串时的编辑次数,然后将该编辑次数设置为第一字符串与第二字符串之间的编辑距离。
需要指出的是,在实际应用中,服务端统计将第一字符串转换第二字符串时的编辑次数时,可以通过预设的执行代码或者算法来实现,在本申请中不再进行详述,本领域技术人员在将本申请公开的技术方案付诸实施时,可以参考相关技术中的介绍。
另外,服务端在计算第一字符串和第二字符串的编辑距离时,由于第一字符串和第二字符串中可能包含汉字、字母以及数字等字符,而汉字、字母以及数字等字符,在平台中进行处理时所对应的字节数通常可能不相同;比如,一个汉字占据两个字节,而字母和数字通常占据一个字节;因此,为了避免由于字符串中各字节占据字节数不同对计算结果造成影响,服务端在计算第一字符串和第二字符串的编辑距离时,可以对第一字符串和第二字符串进行unicode编码,然后针对unicode编码后的第一字符串和第二字符串进行编辑距离的计算。由于unicode编码为业界针对汉字、数字以及字符的统一的编码方案,对汉字、数字以及字母设定统一并且唯一的编码,从而通过这种方式,可以满足跨语言、跨平台进行文本转换、处理的要求。
步骤102,基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度;
在本例中,服务端计算出第一字符串与第二字符串的编辑距离后,可以根据该编辑距离对第一字符串和第二字符串的长度进行适配,以减少第一字符串和第二字符串的长度差异,从而后续在通过该编辑距离计算第一字符串和第二字符串的相似度时,可以最大程度的降低长度差异对计算结果的影响。
在示出的一种实施方式中,服务端在基于计算出的编辑距离,对第一字符串和第二字符串的长度进行适配时,可以计算第一字符串和第二字符串的长度中的最大值和最小值,然后服务端可以将该最大值减去计算出的编辑距离,或者将该最小值加上计算出的编辑距离,来缩小第一字符串和第二字符串之间的长度差异,从而达到对第一字符串和第二字符串的长度进行适配的目的。
例如,假设第一字符串为ABCD,第二字符串为AFCDEG,第一字符串的长度为4,第二字符串的长度为6,二者的编辑距离为3(一次替换编辑,两次新增编辑)。服务端在对第一字符串和第二字符串的长度进行适配时,可以将第一字符串的长度4加上编辑距离3,适配结束后,第一字符串的适配长度为7,与第二字符串的长度差异缩小。或者,服务端在对第一字符串和第二字符串的长度进行适配时,可以将第二字符串的长度6减去编辑距离3,适配结束后,第二字符串的适配长度为3,与第二字符串的长度差异缩小。
当然,在实际应用中,服务端在基于编辑距离对第一字符串和第二字符串的长度进行适配时,除了通过将第一字符串和第二字符串的长度中的最大值减去二者的编辑距离,或者将第一字符串和第二字符串的长度中的最小值加上二者的编辑距离以外,也可以有其他的实现方式,在本实施例不再一一列举。
在本例中,当服务端对第一字符串的长度和第二字符串的长度进行适配完成后,此时服务端可以基于适配完成后的第一字符串以及第二字符串的长度计算相似度。
在示出的一种实施方式中,第一字符串以及第二字符串的长度适配完成后,服务端可以计算适配完成后的第一字符串以及第二字符串的长度中的最小值与最大值之间的比值,此时该比值为介于0至1之间的一个数值,因此服务端可以基于该比值来表征第一字符串以及第二字符串。
一方面,如果服务端通过将第一字符串和第二字符串中长度的最大值减去二者的编辑距离,对第一字符串和第二字符串的长度进行适配,那么服务端在计算二者的相似度时,可以计算减去编辑距离后的最大值与最小值之间的比值,然后通过该比值来表征二者的相似度。
另一方面,如果服务端通过将第一字符串和第二字符串中长度的最小值加上二者的编辑距离,对第一字符串和第二字符串的长度进行适配,那么服务端在计算二者的相似度时,可以计算最大值与加上了编辑距离的最小值之间的比值,然后通过该比值来表征二者的相似度。
基于此,假设第一字符串为x,第二字符串长度为y,第一字符串x的长度为|x|,第二字符串的长度为|y|,二者的编辑距离为ds。
如果服务端通过将|x|和|y|中的最大值减去ds,对|x|和|y|进行适配,那么服务端可以通过如下公式1来计算第一字符串x与第二字符串y之间的相似度:
如果服务端通过将|x|和|y|中的最小值加上ds,对|x|和|y|进行适配,那么服务端可以通过如下公式2来计算第一字符串x与第二字符串y之间的相似度:
上述两个公式中,S表示第一字符串x与第二字符串y之间的相似度。max(|x|,|y|)表示第一字符串与第二字符串的长度中的最大值;min(|x|,|y|)表示第一字符串与第二字符串的长度中的最小值。C表示在公式中引入的修正参数,该修正参数可以是一个大于或者等于0的常数(即上述公式可以引入C值,也可以不引入C值),通过在以上公式中引入上述修正参数可以对上述公式的计算结果进行修正。
其中,上述修正参数的具体取值可以是由用户根据实际的需求设定的工程经验值,在本公开中不进行特别限定;例如,在实现时,上述修正参数可以是用户基于平滑法得到的平滑参数,通过在上述公式中引入平滑参数,可以对上述公式的计算结果进行修正,以降低上述公式计算结果的误差。在上述公式中,当第一字符串x与第二字符串y的长度相同,即|x|=|y|时,max(|x|,|y|)取值与min(|x|,|y|)取值相同,此时,上述修正参数C的取值可以为0(长度相同不需要进行修正),上述公式1则可以转换成S=1-ds/min(|x|,|y|)或者S=1-ds/max(|x|,|y|),由于在这种情况下,max(|x|,|y|)取值与min(|x|,|y|)取值相
同,均可以表示第一字符串x与第二字符串y的长度,因此上述公式1可以转换成S=1-ds/L,其中L的取值表示第一字符串x与第二字符串y的长度。
可见,以上实施例中描述的相似度计算公式,在第一字符串x与第二字符串y的长度相同的情况下,符合现有技术中在基于编辑距离计算相似度时对于相似度的定义。
步骤103,基于所述相似度判定所述第一字符串与所述第二字符串是否相同。
在本例中,当服务端计算出第一字符串与第二字符串之间的相似度后,可以将计算得到的相似度值与预设的相似度阈值进行比较,来判断计算得到的相似度值是否达到该相似度阈值。如果计算得到的相似度值达到该相似度阈值,此时服务端可以判定第一字符串和第二字符串相同。相反,如果计算得到的相似度值小于该相似度阈值时,服务端可以判定第一字符串与第二字符串不同。
需要指出的是,上述相似度阈值可以由用户根据实际的需求进行设定;例如,在实现时,该相似度阈值可以是一个工程经验值,工程人员可以对大量字符串的进行人工判定是否相同,然后对人工判定的结果进行分析,来设置上述相似度阈值;或者也可以将人工判定的结果作为数据分析样本,由服务端进行统计分析来设置上述相似度阈值。
以下通过具体的例子并结合应用场景对以上实施例中的技术方案进行详细描述。
在本例中,假设上述字符串为用户的详细地址,上述服务端为电子商务提供商的云平台;比如淘宝平台。
该云平台可以协助商户对用户上传的详细地址与用户预留在平台中的真实收件地址比对,来确定用户上传的地址是不是该用户真实有效的地址,从而避免用户上传虚假地址信息造成欺诈。
假设用户上传至商户的第一地址为“杭州市西湖区黄龙时代广场B座17楼”;云平台中预留的该用户的第二地址为“杭州市西湖区黄龙时代广场B座17楼蚂蚁金服法务部”。第一地址的字符长度为17(将汉字、字母以及数字均作为一个字符),第二地址的字符长度为24。
服务端在将第一地址转换为第二地址时,通过新增“蚂蚁金服法务部”等7个汉字就可以将第一地址转换为第二地址,因此服务端计算出的二者的编辑距离为7。
在现有实现中,第一地址x和第二地址y的相似度可以通过如下公式来计算:
上述公式中,S表示相似度;ds表示编辑距离;L表示字符串长度。其中,L的取值为可以为min(|x|,|y|)、max(|x|,|y|)或者|x|+|y|。
当L的取值为min(|x|,|y|)时:
当L的取值为max(|x|,|y|)时:
当L的取值为|x|+|y|时:
在本例中,假设云平台预设的相似度阈值为0.85,基于现有技术提供的相似度计算公式计算出的以上相似度的结果,均小于该相似度阈值。
在这种情况下,云平台在基于该相似度阈值判定第一地址和第二地址是否为同一个地址时,则可能将第一地址和第二地址误判为不同的地址。而实质上第一地址和第二地址仅仅是存在长度上的差异的同一个地址。
在本例中,如果云平台通过第一地址和第二地址的编辑距离对第一地址和第二地址的字符长度进行适配,并基于适配后的长度计算相似度值,那么将可以明显降低由于字符串的长度差异对相似度计算结果的影响,从而在基于计算得到的相似度值判定第一地址和第二地址是否为同一地址时,可以提升判定结果的准确度,避免误判的情况发生。
一方面,假设云平台通过将第一地址和第二地址中长度的最大值减去编辑距离,来对第一地址和第二地址的长度进行适配,此时云平台可以通过如下公式计算二者的相似度(以C值为0为例):
另一方面,假设云平台通过将第一地址和第二地址中长度的最小值加上编辑距离,来对第一地址和第二地址的长度进行适配,此时云平台可以通过如下公式计算二者的相似度:
可见,云平台对第一地址和第二地址的长度进行适配后,计算得到的相似度取值为1,相似度的准确度得到了显著提升。
此时,该相似度值大于相似度阈值0.85,云平台在基于相似度阈值判定第一地址和第二地址是否为同一个地址时,会将第一地址和第二地址判定为相同的地址,从而避免了误判。
在以上实施例中,通过计算第一字符串与第二字符串的编辑距离,病基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度;然后基于所述相似度判定所述第一字符串与所述第二字符串是否相同。
由于在本申请中基于编辑距离对第一字符串和第二字符串的长度进行了适配,因此可以减少第一字符串和第二字符串的长度差异,在针对长度适配后的第一字符串和第二字符串进行相似度计算时,可以最大程度的降低字符串的长度差异对相似度计算结果的影响,提升相似度计算的准确度,从而在基于相似度判定第一字符串与第二字符串是否相同时,可以显著提升判定结果的准确性。
与上述方法实施例相对应,本申请还提供了装置的实施例。
请参见图2,本申请提出一种相同字符串的判定装置20,应用于服务端;其中,请参见图3,作为承载所述相同字符串的判定装置20的服务端所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述相同字符串的判定装置20通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置20包括:
第一计算模块201,用于计算第一字符串与第二字符串的编辑距离;第二计算模块202,用于基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度;
判定模块203,用于基于所述相似度判定所述第一字符串与所述第二字符串是否相同。
在本例中,所述第一计算模块201具体用于:
针对所述第一字符串以及所述第二字符串进行unicode编码;
计算unicode编码后的所述第一字符串与所述第二字符串的编辑距离。
在本例中,所述第二计算模块202具体用于:
计算所述第一字符串与所述第二字符串的长度中的最大值和最小值;
将所述最大值减去所述编辑距离,或者将所述最小值加上所述编辑距离,以对所述第一字符串和所述第二字符串的长度进行适配。
在本例中,所述第二计算模块202进一步用于:
计算减去所述编辑距离后的所述最大值与所述最小值的比值,基于该比值表征所述第一字符串与所述第二字符串的相似度;或者
计算所述最大值与加上所述编辑距离后的所述最小值的比值,基于该比值表征所述第一字符串与所述第二字符串的相似度。
在本例中,所述第二计算模块202进一步用于:
基于预设的相似度计算公式计算所述第一字符串与所述第二字符串的相似度;
所述相似度计算公式包括:
其中,x表示第一字符串,|x|表示第一字符串的长度;y表示第二字符串,|y|表示第二字符串的长度;max(|x|,|y|)表示第一字符串与第二字符串的长度中的最大值;min(|x|,|y|)表示第一字符串与第二字符串的长度中的最小值;ds表示第一字符串与第二字符串的编辑距离;C表示修正参数,为大于或者等于0的常数。
在本例中,所述判定模块203具体用于:
判断计算出的所述相似度是否达到预设的阈值;
当计算出的所述相似度达到预设的阈值时,判定所述第一字符串与所述第二字符串相同;
当计算出的所述相似度未达到预设的阈值时,判定所述第一字符串与所述第二字符串不相同。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (12)

1.一种相同字符串的判定方法,其特征在于,该方法包括:
计算第一字符串与第二字符串的编辑距离;
基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度;
基于所述相似度判定所述第一字符串与所述第二字符串是否相同。
2.根据权利要求1所述的方法,其特征在于,所述计算第一字符串与第二字符串的编辑距离包括:
针对所述第一字符串以及所述第二字符串进行unicode编码;
计算unicode编码后的所述第一字符串与所述第二字符串的编辑距离。
3.根据权利要求1所述的方法,其特征在于,所述基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配包括:
计算所述第一字符串与所述第二字符串的长度中的最大值和最小值;
将所述最大值减去所述编辑距离,或者将所述最小值加上所述编辑距离,以对所述第一字符串和所述第二字符串的长度进行适配。
4.根据权利要求3所述的方法,其特征在于,所述计算长度进行适配后的所述第一字符串与所述第二字符串的相似度包括:
计算减去所述编辑距离后的所述最大值与所述最小值的比值,基于该比值表征所述第一字符串与所述第二字符串的相似度;或者
计算所述最大值与加上所述编辑距离后的所述最小值的比值,基于该比值表征所述第一字符串与所述第二字符串的相似度。
5.根据权利要求1所述的方法,其特征在于,所述基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度包括:
基于预设的相似度计算公式计算所述第一字符串与所述第二字符串的相似度;
所述相似度计算公式包括:
S = m a x ( | x | , | y | ) - d s + C min ( | x | , | y | ) + C ;
S = m a x ( | x | , | y | ) + C min ( | x | , | y | ) + d s + C
其中,x表示第一字符串,|x|表示第一字符串的长度;y表示第二字符串,|y|表示第二字符串的长度;max(|x|,|y|)表示第一字符串与第二字符串的长度中的最大值;min(|x|,|y|)表示第一字符串与第二字符串的长度中的最小值;ds表示第一字符串与第二字符串的编辑距离;C表示修正参数,为大于或者等于0的常数。
6.根据权利要求1所述的方法,其特征在于,所述基于所述相似度判定所述第一字符串与所述第二字符串是否相同包括:
判断计算出的所述相似度是否达到预设的阈值;
当计算出的所述相似度达到预设的阈值时,判定所述第一字符串与所述第二字符串相同;
当计算出的所述相似度未达到预设的阈值时,判定所述第一字符串与所述第二字符串不相同。
7.一种相同字符串的判定装置,其特征在于,该装置包括:
第一计算模块,用于计算第一字符串与第二字符串的编辑距离;第二计算模块,用于基于所述编辑距离对所述第一字符串和所述第二字符串的长度进行适配,并基于适配后的所述第一字符串以及所述第二字符串的长度计算相似度;
判定模块,用于基于所述相似度判定所述第一字符串与所述第二字符串是否相同。
8.根据权利要求7所述的装置,其特征在于,所述第一计算模块具体用于:
针对所述第一字符串以及所述第二字符串进行unicode编码;
计算unicode编码后的所述第一字符串与所述第二字符串的编辑距离。
9.根据权利要求7所述的装置,其特征在于,所述第二计算模块具体用于:
计算所述第一字符串与所述第二字符串的长度中的最大值和最小值;
将所述最大值减去所述编辑距离,或者将所述最小值加上所述编辑距离,以对所述第一字符串和所述第二字符串的长度进行适配。
10.根据权利要求9所述的装置,其特征在于,所述第二计算模块进一步用于:
计算减去所述编辑距离后的所述最大值与所述最小值的比值,基于该比值表征所述第一字符串与所述第二字符串的相似度;或者
计算所述最大值与加上所述编辑距离后的所述最小值的比值,基于该比值表征所述第一字符串与所述第二字符串的相似度。
11.根据权利要求7所述的装置,其特征在于,所述第二计算模块进一步用于:
基于预设的相似度计算公式计算所述第一字符串与所述第二字符串的相似度;
所述相似度计算公式包括:
S = m a x ( | x | , | y | ) - d s + C min ( | x | , | y | ) + C ;
S = m a x ( | x | , | y | ) + C min ( | x | , | y | ) + d s + C
其中,x表示第一字符串,|x|表示第一字符串的长度;y表示第二字符串,|y|表示第二字符串的长度;max(|x|,|y|)表示第一字符串与第二字符串的长度中的最大值;min(|x|,|y|)表示第一字符串与第二字符串的长度中的最小值;ds表示第一字符串与第二字符串的编辑距离;C表示修正参数,为大于或者等于0的常数。
12.根据权利要求7所述的装置,其特征在于,所述判定模块具体用于:
判断计算出的所述相似度是否达到预设的阈值;
当计算出的所述相似度达到预设的阈值时,判定所述第一字符串与所述第二字符串相同;
当计算出的所述相似度未达到预设的阈值时,判定所述第一字符串与所述第二字符串不相同。
CN201610052823.8A 2016-01-26 2016-01-26 相同字符串的判定方法及装置 Active CN106997335B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610052823.8A CN106997335B (zh) 2016-01-26 2016-01-26 相同字符串的判定方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610052823.8A CN106997335B (zh) 2016-01-26 2016-01-26 相同字符串的判定方法及装置

Publications (2)

Publication Number Publication Date
CN106997335A true CN106997335A (zh) 2017-08-01
CN106997335B CN106997335B (zh) 2020-05-19

Family

ID=59428480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610052823.8A Active CN106997335B (zh) 2016-01-26 2016-01-26 相同字符串的判定方法及装置

Country Status (1)

Country Link
CN (1) CN106997335B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108710562A (zh) * 2018-05-10 2018-10-26 深圳市腾讯网络信息技术有限公司 异常记录的合并方法、装置及设备
CN109783811A (zh) * 2018-12-26 2019-05-21 东软集团股份有限公司 一种识别文本编辑错误的方法、装置、设备及存储介质
CN110708308A (zh) * 2019-09-29 2020-01-17 武汉大学 一种面向云计算环境的跨站脚本漏洞挖掘方法及***
CN112580342A (zh) * 2019-09-30 2021-03-30 深圳无域科技技术有限公司 公司名称比对的方法、装置、计算机设备和存储介质
CN113723466A (zh) * 2019-05-21 2021-11-30 创新先进技术有限公司 文本相似度量化方法、设备及***

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444326B1 (en) * 2002-06-17 2008-10-28 At&T Corp. Method of performing approximate substring indexing
CN101388023A (zh) * 2008-09-12 2009-03-18 北京搜狗科技发展有限公司 电子地图兴趣点数据冗余检测方法和***
CN101930458A (zh) * 2010-08-18 2010-12-29 杭州东信北邮信息技术有限公司 一种基于特征值的短信匹配方法
US20110016111A1 (en) * 2009-07-20 2011-01-20 Alibaba Group Holding Limited Ranking search results based on word weight
CN102081642A (zh) * 2010-10-28 2011-06-01 华南理工大学 搜索引擎检索结果聚类的中文标签提取方法
CN103106264A (zh) * 2013-01-29 2013-05-15 河南理工大学 一种地名匹配方法及装置
CN103218423A (zh) * 2013-04-02 2013-07-24 中国科学院信息工程研究所 数据查询方法及装置
CN104598591A (zh) * 2015-01-20 2015-05-06 清华大学 一种针对类型属性图模型的模型元素匹配方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444326B1 (en) * 2002-06-17 2008-10-28 At&T Corp. Method of performing approximate substring indexing
CN101388023A (zh) * 2008-09-12 2009-03-18 北京搜狗科技发展有限公司 电子地图兴趣点数据冗余检测方法和***
US20110016111A1 (en) * 2009-07-20 2011-01-20 Alibaba Group Holding Limited Ranking search results based on word weight
CN101930458A (zh) * 2010-08-18 2010-12-29 杭州东信北邮信息技术有限公司 一种基于特征值的短信匹配方法
CN102081642A (zh) * 2010-10-28 2011-06-01 华南理工大学 搜索引擎检索结果聚类的中文标签提取方法
CN103106264A (zh) * 2013-01-29 2013-05-15 河南理工大学 一种地名匹配方法及装置
CN103218423A (zh) * 2013-04-02 2013-07-24 中国科学院信息工程研究所 数据查询方法及装置
CN104598591A (zh) * 2015-01-20 2015-05-06 清华大学 一种针对类型属性图模型的模型元素匹配方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GUOLIANG LI 等: "A Partition-Based Method for String Similarity Joins with Edit-Distance Constraints", 《ACM TRANSACTIONS ON DATABASE SYSTEMS》 *
夏天 等: "改进编辑距离算法与汉语句子相似度计算", 《中国科协第2届优秀博士生学术年会》 *
姜华 等: "基于改进编辑距离的字符串相似度求解算法", 《计算机工程》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108710562A (zh) * 2018-05-10 2018-10-26 深圳市腾讯网络信息技术有限公司 异常记录的合并方法、装置及设备
CN108710562B (zh) * 2018-05-10 2023-03-31 深圳市腾讯网络信息技术有限公司 异常记录的合并方法、装置及设备
CN109783811A (zh) * 2018-12-26 2019-05-21 东软集团股份有限公司 一种识别文本编辑错误的方法、装置、设备及存储介质
CN109783811B (zh) * 2018-12-26 2023-10-31 东软集团股份有限公司 一种识别文本编辑错误的方法、装置、设备及存储介质
CN113723466A (zh) * 2019-05-21 2021-11-30 创新先进技术有限公司 文本相似度量化方法、设备及***
CN113723466B (zh) * 2019-05-21 2024-03-08 创新先进技术有限公司 文本相似度量化方法、设备及***
CN110708308A (zh) * 2019-09-29 2020-01-17 武汉大学 一种面向云计算环境的跨站脚本漏洞挖掘方法及***
CN110708308B (zh) * 2019-09-29 2021-08-17 武汉大学 一种面向云计算环境的跨站脚本漏洞挖掘方法及***
CN112580342A (zh) * 2019-09-30 2021-03-30 深圳无域科技技术有限公司 公司名称比对的方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN106997335B (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
CN106997335A (zh) 相同字符串的判定方法及装置
CN106295346B (zh) 一种应用漏洞检测方法、装置及计算设备
CN111651585A (zh) 信息校验方法、装置、电子设备及存储介质
CN104376174B (zh) 一种基于线路阻抗比的交流线路参数辨识与修正方法
CN112784720A (zh) 基于银行回单的关键信息提取方法、装置、设备及介质
CN115952760A (zh) 一种数模电路仿真方法、装置、设备及计算机存储介质
CN115576828A (zh) 一种测试用例生成方法、装置、设备及存储介质
CN112800527B (zh) 基于建筑信息模型的结构梁钢筋信息生成方法及相关装置
CN111291140A (zh) 一种拓扑节点的识别方法、装置、设备及介质
CN115547508B (zh) 数据校正方法、装置、电子设备及存储介质
CN113792558B (zh) 基于机器翻译和译后编辑的自学习翻译方法及装置
CN115659347A (zh) 一种安全测试方法、装置、电子设备和存储介质
CN112733507A (zh) 一种自动生成法律文本标记事件的方法
CN116127948B (zh) 待标注文本数据的推荐方法、装置及电子设备
CN113822057B (zh) 地点信息确定方法、装置、电子设备以及存储介质
CN104503970B (zh) 一种号码与自定义匹配公式进行匹配的方法及***
CN110569498A (zh) 一种复合词识别方法及相关装置
CN118377557B (zh) 基于异步校验库的自定义表单校验***及控制方法
CN115760006B (zh) 数据校正方法、装置、电子设备及存储介质
CN116108779B (zh) 电源地网络约简方法及***
CN117272970B (zh) 一种文档生成方法、装置、设备以及存储介质
CN115576902B (zh) 一种标定描述文件的处理方法、装置、设备及介质
CN115857939A (zh) 语句合法性的校验方法、装置、电子设备和介质
CN116303337A (zh) 数据迁移的方法、装置、设备及计算机存储介质
CN114816467B (zh) 升级文件的生成方法、装置和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right