CN111382322A - 字符串相似度的确定方法和装置 - Google Patents

字符串相似度的确定方法和装置 Download PDF

Info

Publication number
CN111382322A
CN111382322A CN201811615551.3A CN201811615551A CN111382322A CN 111382322 A CN111382322 A CN 111382322A CN 201811615551 A CN201811615551 A CN 201811615551A CN 111382322 A CN111382322 A CN 111382322A
Authority
CN
China
Prior art keywords
similarity
character string
string
determining
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
CN201811615551.3A
Other languages
English (en)
Other versions
CN111382322B (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.)
Beijing Orion Star Technology Co Ltd
Original Assignee
Beijing Orion Star Technology Co 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 Beijing Orion Star Technology Co Ltd filed Critical Beijing Orion Star Technology Co Ltd
Priority to CN201811615551.3A priority Critical patent/CN111382322B/zh
Publication of CN111382322A publication Critical patent/CN111382322A/zh
Application granted granted Critical
Publication of CN111382322B publication Critical patent/CN111382322B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种字符串相似度的确定方法和装置。包括:获取第一字符串和第二字符串,第一字符串中包括i个元素,第二字符串中包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数;计算第一子字符串与第二子字符串之间的第一相似度,其中,所述第一子字符串中包括所述第一字符串中的前i‑1个元素,所述第二子字符串中包括所述第二字符串中的前j‑1个元素;根据所述第一相似度,确定所述第一字符串和所述第二字符串之间的相似度。本发明提供的字符串相似度的确定方法和装置能够提高相似度的准确性。

Description

字符串相似度的确定方法和装置
技术领域
本发明涉及信息处理技术领域,尤其涉及一种字符串相似度的确定方法和装置。
背景技术
随着电子设备的快速发展,信息识别系统在电子设备上的应用也越来越普及。例如,语音信息识别或者手写信息识别等。以语音信息识别为例,用户在驾驶车辆行驶过程中,拨打电话时,或者用户在使用车载导航时,输入目的地时,通常会采用语音的方式控制手机或者车载导航,使得手机或者车载导航在接收到用户输入的语音信息之后,对该语音信息进行识别,从而执行相应的操作。
现有技术中,对于手机或者车载导航而言,在对语音信息进行识别时,需要先将用户输入的语音信息转换为文字信息,再通过编辑距离(Edit Distance或levenshteindistance)或汉明距离(hamming distance)算法计算字符串之间的相似度。
然而,通过上述方式计算字符串之间的相似度时,只是对字符串的每个字符进行了是否相等的一一对比并计算相关距离,使得计算得到的相似度的准确性较低。
发明内容
本发明实施例提供一种字符串相似度的确定方法和装置,能够提高确定出的相似度的准确性。
第一方面,本发明实施例提供一种字符串相似度的确定方法,包括:
获取第一字符串和第二字符串,所述第一字符串中包括i个元素,所述第二字符串中包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数;
计算第一子字符串与第二子字符串之间的第一相似度,其中,所述第一子字符串中包括所述第一字符串中的前i-1个元素,所述第二子字符串中包括所述第二字符串中的前j-1个元素;
根据所述第一相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述根据所述第一相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
计算所述第一字符串中第i个元素和所述第二字符串中第j个元素之间的第二相似度;
根据所述第一相似度和所述第二相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述根据所述第一相似度和所述第二相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
计算所述第一子字符串与第二字符串之间的第三相似度;
计算所述第二子字符串与第一字符串之间的第四相似度;
根据所述第一相似度、所述第二相似度、所述第三相似度和所述第四相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述根据所述第一相似度、所述第二相似度、所述第三相似度和所述第四相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
计算所述第一相似度与所述第二相似度的和,得到第五相似度;
确定所述第三相似度、所述第四相似度和所述第五相似度中的最大值,并将所述最大值确定为所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述计算第一子字符串与第二子字符串之间的第一相似度,包括:
分别计算所述第一子字符串与所述第二子字符串之间的至少两种类型的第一相似度;
所述根据所述第一相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
对于每种类型,根据该类型的第一相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述计算所述第一字符串中第i个元素和所述第二字符串中第j个元素之间的第二相似度,包括:
分别计算所述第一字符串中第i个元素和所述第二字符串中第j个元素之间的至少两种类型的第二相似度;
根据所述第一相似度和所述第二相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
对于每种类型,根据该类型的第一相似度和第二相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,计算所述第一子字符串与第二字符串之间的第三相似度,包括:
分别计算所述第一子字符串与所述第二字符串之间的至少两种类型的第三相似度;
所述计算所述第二子字符串与第一字符串之间的第四相似度,包括:
分别计算所述第二子字符串与所述第一字符串之间的至少两种类型的第四相似度;
所述根据所述第一相似度、所述第二相似度、所述第三相似度和所述第四相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
对于每种类型,根据该类型的第一相似度、第二相似度、第三相似度和第四相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述第一字符串和所述第二字符串之间的相似度的类型包括如下中的至少一种:编辑相似度、语义相似度、字符相似度和拼音相似度。
在一种可能的实现方式中,所述根据所述第一相似度,确定所述第一字符串和所述第二字符串之间的相似度之后,所述方法还包括:
对所述第一字符串和所述第二字符串之间的相似度进行归一化处理;
将归一化处理后得到的数值,确定为所述第一字符串和所述第二字符串之间的最终相似度。
在一种可能的实现方式中,所述获取第一字符串和第二字符串,包括:
获取输入信息,并将所述输入信息对应的字符串确定为所述第一字符串;
获取所述输入信息接收时刻设备屏幕中的显示信息,并将所述显示信息对应的字符串确定为所述第二字符串。
第二方面,本发明实施例提供一种字符串相似度的确定装置,包括:
获取模块,用于获取第一字符串和第二字符串,所述第一字符串中包括i个元素,所述第二字符串中包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数;
计算模块,用于计算第一子字符串与第二子字符串之间的第一相似度,其中,所述第一子字符串中包括所述第一字符串中的前i-1个元素,所述第二子字符串中包括所述第二字符串中的前j-1个元素;
确定模块,用于根据所述第一相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述计算模块还用于:
计算所述第一字符串中第i个元素和所述第二字符串中第j个元素之间的第二相似度;
所述确定模块具体用于:根据所述第一相似度和所述第二相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述计算模块,还用于:
计算所述第一子字符串与第二字符串之间的第三相似度;以及计算所述第二子字符串与第一字符串之间的第四相似度;
所述确定模块,具体用于:根据所述第一相似度、所述第二相似度、所述第三相似度和所述第四相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述确定模块具体用于:
计算所述第一相似度与所述第二相似度的和,得到第五相似度;
确定所述第三相似度、所述第四相似度和所述第五相似度中的最大值,并将所述最大值确定为所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述计算模块,具体用于:分别计算所述第一子字符串与所述第二子字符串之间的至少两种类型的第一相似度;
所述确定模块,具体用于:对于每种类型,根据该类型的第一相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述计算模块,具体用于:分别计算所述第一字符串中第i个元素和所述第二字符串中第j个元素之间的至少两种类型的第二相似度;
所述确定模块,具体用于:对于每种类型,根据该类型的第一相似度和第二相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述计算模块,具体用于:分别计算所述第一子字符串与所述第二字符串之间的至少两种类型的第三相似度;以及计算所述第二子字符串与所述第一字符串之间的至少两种类型的第四相似度;
所述确定模块,具体用于:对于每种类型,根据该类型的第一相似度、第二相似度、第三相似度和第四相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
在一种可能的实现方式中,所述第一字符串和所述第二字符串之间的相似度的类型包括如下中的至少一种:编辑相似度、语义相似度、字符相似度和拼音相似度。
在一种可能的实现方式中,所述确定模块,具体用于:
对所述第一字符串和所述第二字符串之间的相似度进行归一化处理;
将归一化处理后得到的数值,确定为所述第一字符串和所述第二字符串之间的最终相似度。
第三方面,本发明实施例提供一种电子设备,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面所述的方法的指令。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得电子设备执行第一方面所述的方法。
本发明实施例提供的字符串相似度的确定方法和装置,通过获取第一字符串和第二字符串,该第一字符串中包括i个元素,该第二字符串中包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数,然后计算第一子字符串与第二子字符串之间的第一相似度,其中,第一子字符串中包括第一字符串中的前i-1个元素,第二子字符串中包括第二字符串中的前j-1个元素,最后根据第一相似度,确定第一字符串和第二字符串之间的相似度。由于考虑了包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度,从而确定第一字符串和第二字符串之间的相似度,这样,避免了现有技术中仅对字符串的每个字符是否相等进行一一对比并计算相关距离,没有考虑到字符本身可能表现在各个方面(如语音、字形或词义等)的相似性,以确定字符串之间的相似度的现象,从而可以提高确定出的字符串之间相似度的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的相似度的确定方法实施例一的流程示意图;
图2为本发明实施例提供的相似度的确定方法实施例二的流程示意图;
图3为本发明实施例提供的字符串相似度的确定方法实施例三的流程示意图;
图4为本发明相似度的确定装置实施例一的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供的字符串相似度的确定方法,可以应用于需要确定字符串之间的相似度的应用场景中,其中,字符串可以为句子、词语或者单词等。例如:用户在使用车载导航并输入目的地后,需要进行目的地的匹配,又如用户通过输入语音拨打电话等。另外,本发明实施例提供的字符串相似度的确定方法,还可以应用于用户通过输入语音信息或者手写信息,查找想要观看的视频的应用场景中。在现有技术中,通常是通过编辑距离(EditDistance或levenshtein distance)或汉明距离(hamming distance)算法计算字符串之间的相似度,但是,通过上述方式计算字符串之间的相似度时,只是对字符串的每个字符进行了一一对比并计算相关距离,使得计算得到的相似度的准确性较低。
本发明实施例考虑到上述问题,提出一种字符串相似度的确定方法,该方法中通过获取第一字符串和第二字符串,该第一字符串中包括i个元素,该第二字符串中包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数,然后计算第一子字符串与第二子字符串之间的第一相似度,其中,第一子字符串中包括第一字符串中的前i-1个元素,第二子字符串中包括第二字符串中的前j-1个元素,最后根据第一相似度,确定第一字符串和第二字符串之间的相似度。由于考虑了包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度,从而确定第一字符串和第二字符串之间的相似度,这样,避免了现有技术中仅对字符串的每个字符进行是否相等的一一对比并计算相关距离,没有考虑到字符本身可能表现在各个方面(如语音、字形、词义等)的相似性,以确定字符串之间的相似度的现象,从而可以提高确定出的字符串之间相似度的准确性。
下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本发明实施例提供的字符串相似度的确定方法实施例一的流程示意图,本发明实施例提供了一种字符串相似度的确定方法,该方法可以由任意执行字符串相似度的确定方法的装置来执行,该装置可以通过软件和/或硬件实现。本实施例中,该装置可以集成在电子设备中,如智能设备(机器人、智能电视、智能音箱等)或者服务器等。如图1所示,本发明实施例提供的字符串相似度的确定方法包括如下步骤:
步骤101:获取第一字符串和第二字符串,该第一字符串中包括i个元素,该第二字符串中包括j个元素。
其中,i∈[1,…,n],j∈[1,…,m],n和m均为正整数。
在本步骤中,第一字符串和第二字符串均可以为句子、词语、拼音或者单词等。
在一种可能的实现方式中,可以通过如下方式获取第一字符串和第二字符串:获取输入信息,并将该输入信息对应的字符串确定为第一字符串;获取输入信息接收时刻设备屏幕中的显示信息,并将显示信息对应的字符串确定为第二字符串。
具体的,输入信息可以为语音信息,也可以为文字信息,在获取到输入信息后,可以将输入信息对应的字符串确定为第一字符串。示例的,当语音信息为“我想看精品电影”时,在对该语音信息进行语音识别的过程中,可能将输入信息“我想看精品电影”识别为“我想看竞品点映”,此时,可以将“我想看竞品点映”确定为第一字符串。当输入信息为文字信息时,可能由于编辑错误,将“我想看精品电影”输入为“我想看竞品点映”,同样的,将“我想看竞品点映”确定为第一字符串。
可选的,在获取输入信息时,可以通过智能设备的麦克风采集用户的输入信息,也可以通过网络或者蓝牙等方式接收其他设备获取用户的输入信息,当然,也可以通过智能设备的屏幕获取用户的输入信息,在此,本发明实施例只是以这三种可能的实现方式获取用户的输入信息为例进行说明,但并不代表本发明实施例仅局限于此。
另外,智能设备屏幕中的显示信息可以包括精品电影、电影、极品飞车、用户信息、菜单等,本发明实施例中可以将获取到的显示信息对应的字符串确定为第二字符串。当然,此处只是以智能设备屏幕中的显示信息可以包括精品电影、电影、极品飞车、用户信息、菜单等为例进行说明,但并不代表本发明实施例仅局限于此。
需要说明的是,在本申请实施例中,输入信息的接收时刻不能局限地理解为接收输入信息的一瞬间,而是应该理解为输入信息接收的当前时间段内,该当前时间段具体为多久,可以根据实际需要进行设置,在此,本申请实施例不做具体限制。
其中,本发明实施例中不对第一字符串和第二字符串的具体形式进行限定。
进一步地,在获取到第一字符串和第二字符串后,会分别将该第一字符串和第二字符串切分为多个元素,其中,第一字符串中包括有i个元素,第二字符串中包括j个元素,其中,i∈[1,…,n],j∈[1,…,m]。另外,元素可以为汉字、单词、词组或者单个字母。例如:第一字符串str1=[x1,x2,…xi],第二字符串str2=[y1,y2,…yj]。在进行元素的切分后,第一字符串str1中包括的元素为x1、x2、…xi,第二字符串str2中包括的元素为y1,y2,…yj
举例来说:若第一字符串为句子,如“我想看电影”,则第一字符串中的元素则可以为单个汉字,即包括“我”、“想”、“看”、“电”、“影”这五个元素,若第一字符串为拼音,如“jing”,则第一字符串中的元素则可以为单个字母,即包括“j”、“i”、“n”和“g”这五个元素等,对于第二字符串中元素的组成方式,和第一字符串中的类似,此处不再赘述。
需要进行说明的是,第一字符串和第二字符串需要通过相同的方式进行切分,如切分后的元素均为汉字、或者均为单词、均为词组或者均为单个字母等。
步骤102:计算第一子字符串与第二子字符串之间的第一相似度。
其中,第一子字符串中包括第一字符串中的前i-1个元素,第二子字符串中包括第二字符串中的前j-1个元素。
在本步骤中,计算包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的第一相似度。其中,包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的第一相似度,是根据包含第一字符串中的前i-2个元素的字符串与包含第二字符串中的前j-2个元素的字符串之间的相似度计算出来的,而包含第一字符串中的前i-2个元素的字符串与包含第二字符串中的前j-2个元素的字符串之间的相似度,又是根据包含第一字符串中的前i-3个元素的字符串与包含第二字符串中的前j-3个元素的字符串之间的相似度计算出来的,……以此类推。
在本实施例中,计算包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的第一相似度时,可以根据现有技术中的任意一种方式进行计算,也可以根据公式ci-1,j-1=max(ci-2,j-2+si-1,j-1,ci-2,j-1,ci-1,j-2),计算第一子字符串与第二子字符串之间的第一相似度,其中,ci-1,j-1为包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度,ci-2,j-2为包含第一字符串中的前i-2个元素的字符串与包含第二字符串中的前j-2个元素的字符串之间的相似度,si-1,j-1为第一字符串中的第i-1个元素与第二字符串中的第j-1个元素之间的相似度,ci-2,j-1为包含第一字符串中的前i-2个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度;ci-1,j-2为包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-2个元素的字符串之间的相似度。
其中,在上述公式中,可以设置c0,0(包含第一字符串中的前0个元素的字符串与包含第二字符串中的前0个元素的字符串之间的相似度)、ci,0(包含第一字符串中的前i个元素的字符串与包含第二字符串中的前0个元素的字符串之间的相似度)以及c0,j(包含第一字符串中的前0个元素的字符串与包含第二字符串中的前j个元素的字符串之间的相似度)均为零。
举例来说,假设第一字符串为“jing”,第二字符串为“ping”,其中,第一子字符串为“jin”,第二子字符串为“pin”,则将会计算“jin”与“pin”之间的第一相似度。其中,“jin”与“pin”之间的第一相似度,是根据“ji”与“pi”之间的相似度确定的,“ji”与“pi”之间的相似度,又是根据“j”与“p”之间的相似度确定出的,因此,可以基于edit distance、wordvector、字形或者字发音等任意一种方式计算出“j”与“p”之间的相似度,由此,可以确定出第一子字符串与第二子字符串之间的第一相似度,也即“jin”与“pin”之间的第一相似度。
步骤103:根据第一相似度,确定第一字符串和第二字符串之间的相似度。
在本步骤中,在确定出包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的第一相似度后,将根据该第一相似度确定第一字符串和第二字符串之间的相似度,这样,避免了现有技术中仅对字符串的每个字符进行是否相等的一一对比并计算相关距离,没有考虑到字符本身可能表现在各个方面(如语音、字形、词义等)的相似性,以确定字符串之间的相似度的现象,从而可以提高确定出的字符串之间相似度的准确性。
在一种可能的实现方式中,本实施例中,在计算得到第一相似度之后,可以直接将计算得到的第一相似度确定为第一字符串和第二字符串之间的相似度,也可以基于第一相似度进行预设的函数运算以得到第一字符串和第二字符串之间的相似度。对于第一字符串和第二字符串之间的相似度的确定方法,本发明实施例在此不做限定。
在上述实施例的基础上,第一字符串和第二字符串之间的相似度的类型包括如下中的至少一种:编辑相似度、语义相似度、字符相似度和拼音相似度。
具体的,可以采用现有技术中的编辑距离(Edit Distance或levenshteindistance)或汉明距离(hamming distance)算法计算上述几种类型的相似度。具体的,第一字符串和第二字符串之间的相似度的类型,可以是基于edit distance计算的编辑相似度,也可以是基于word vector计算的语义相似度meaning_sim,还可以是基于字形的相似度char_sim,还可以是基于字发音的相似度phonetic_sim。
在一种可能的实现方式中,为了进一步提高确定出的第一字符串和第二字符串之间的相似度,可以分别计算第一子字符串与第二子字符串之间的至少两种类型的第一相似度,对于每种类型,根据该类型的第一相似度,确定第一字符串和第二字符串在该类型下的相似度;以及根据第一字符串和第二字符串在至少两种类型下的相似度,确定第一字符串和第二字符串之间的相似度。
具体的,可以基于edit distance计算编辑相似度,其计算元素是汉字,如果是英文则为单词,具体的,若第一字符串的第i个元素和第二字符串的第j个元素相等,则第一字符串的第i个元素和第二字符串的第j个元素之间的相似度为1,否则为0。语义相似度可以通过levenshtein distance、edit distance或hamming distance算法中的任意一种计算,其计算元素是词语,如果是英文则为单词。具体的,第一字符串的第i个元素和第二字符串的第j个元素之间的相似度为第一字符串第i个词和第二字符串的第j个词的wordvec之间的cosine相似度。字符相似度可以通过levenshtein distance、edit distance或hammingdistance算法中的任意一种计算,其计算元素是字,如果是英文则为单词,具体的,第一字符串的第i个元素和第二字符串的第j个元素之间的相似度为两个中文字之间的字形相似度。拼音相似度可以通过levenshtein distance、edit distance或hamming distance算法中的任意一种计算,其计算元素是汉字,如果是英文则为单词,具体的,第一字符串的第i个元素和第二字符串的第j个元素之间的相似度为第一字符串第i个汉字和第二字符串的第j个汉字拼音的相似度,其可以是人工预定义的相似度,或者两个汉字对应拼音的相似度。
通过上述方式计算出第一子字符串与第二子字符串之间的至少两种类型的第一相似度后,对于每种类型,将根据该类型的第一相似度,确定第一字符串和第二字符串在该类型下的相似度,这样,将可以得到第一字符串和第二字符串在至少两种类型下的相似度。这样,可以将第一字符串和第二字符串在至少两种类型下的相似度中的最大值确定为第一字符串和第二字符串之间的相似度,也可以将第一字符串和第二字符串在至少两种类型下的相似度中的最小值确定为第一字符串和第二字符串之间的相似度,还可以将多个类型下的相似度取平均值,并将得到的平均值确定为第一字符串和第二字符串之间的相似度,当然,也可以基于多种类型下的相似度进行预设的函数运算以得到第一字符串和第二字符串之间的相似度。对于第一字符串和第二字符串之间的相似度的确定方法,本发明实施例在此不做限定。
在本实施例中,由于分别计算第一子字符串与第二子字符串之间的至少两种类型的第一相似度之后,对于每种类型,根据该类型的第一相似度,确定第一字符串和第二字符串在该类型下的相似度;以及根据第一字符串和第二字符串在至少两种类型下的相似度,确定第一字符串和第二字符串之间的相似度,由此可以进一步提高相似度的准确性。
图2为本发明实施例提供的字符串相似度的确定方法实施例二的流程示意图,本实施例在图1所示实施例的基础上,对如何根据第一相似度,确定第一字符串和第二字符串之间的相似度的过程,进行详细说明。本发明实施例提供的字符串相似度的确定方法包括如下步骤:
步骤201:获取第一字符串和第二字符串。
其中,第一字符串中包括i个元素,第二字符串中包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数。对于第一字符串和第二字符串,可以参考步骤101中的介绍,此处不再赘述。
步骤202:计算第一子字符串与第二子字符串之间的第一相似度。
其中,第一子字符串中包括第一字符串中的前i-1个元素,第二子字符串中包括第二字符串中的前j-1个元素。
其中,第一字符串中的前i-1个元素是指在第一字符串中,位于第i-1个元素前面,且包含第i-1个元素的各元素。例如:若第一字符串为“竞品点映”,且i为4,则第一字符串中的前3个元素为“竞”、“品”和“点”。另外,第二字符串中的前j-1个元素,是指在第二字符串中,位于第j-1个元素前面,其包含第j-1个元素的各元素,例如:若第二字符串为“精品电影”,且j为4,则第二字符串中前3个元素为“精”、“品”和“电”。
在一种可能的实现方式中,可以根据现有技术中的任意一种方式计算第一子字符串与第二子字符串之间的第一相似度,也可以根据公式ci-1,j-1=max(ci-2,j-2+si-1,j-1,ci-2,j-1,ci-1,j-2),计算第一子字符串与第二子字符串之间的第一相似度,其中,ci-1,j-1为包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度,ci-2,j-2为包含第一字符串中的前i-2个元素的字符串与包含第二字符串中的前j-2个元素的字符串之间的相似度,si-1,j-1为第一字符串中的第i-1个元素与第二字符串中的第j-1个元素之间的相似度,ci-2,j-1为包含第一字符串中的前i-2个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度;ci-1,j-2为包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-2个元素的字符串之间的相似度。
需要进行说明的是,在上述公式中,可以设置c0,0(包含第一字符串中的前0个元素的字符串与包含第二字符串中的前0个元素的字符串之间的相似度)、ci,0(包含第一字符串中的前i个元素的字符串与包含第二字符串中的前0个元素的字符串之间的相似度)以及c0,j(包含第一字符串中的前0个元素的字符串与包含第二字符串中的前j个元素的字符串之间的相似度)均为零。
步骤203:计算第一字符串中第i个元素和第二字符串中第j个元素之间的第二相似度。
在本步骤中,在计算第一字符串中任意一个元素和第二字符串中任意一个元素之间的相似度时,可以采用现有技术中的编辑距离(Edit Distance或levenshteindistance)或汉明距离(hamming distance)算法计算,即可以基于edit distance计算的编辑相似度,也可以是基于word vector计算的语义相似度meaning_sim,还可以基于字形的相似度char_sim,还可以是基于字发音的相似度phonetic_sim。其中,基于edit distance计算的编辑相似度,其计算元素是汉字,如果是英文则为单词,具体的,若第一字符串的第i个元素和第二字符串的第j个元素相等,则第一字符串的第i个元素和第二字符串的第j个元素之间的相似度为1,否则为0。语义相似度可以通过levenshtein distance、editdistance或hamming distance算法中的任意一种计算,其计算元素是词语,如果是英文则为单词,具体的,第一字符串的第i个元素和第二字符串的第j个元素之间的相似度为第一字符串第i个词和第二字符串的第j个词的wordvec之间的cosine相似度。字符相似度可以通过levenshtein distance、edit distance或hamming distance算法中的任意一种计算,其计算元素是字,如果是英文则为单词,具体的,第一字符串的第i个元素和第二字符串的第j个元素之间的相似度为两个中文字之间的字形相似度。拼音相似度可以通过levenshtein distance、edit distance或hamming distance算法中的任意一种计算,其计算元素是汉字,如果是英文则为单词,具体的,第一字符串的第i个元素和第二字符串的第j个元素之间的相似度为第一字符串第i个汉字和第二字符串的第j个汉字拼音的相似度,其可以是人工预定义的相似度,或者两个汉字对应拼音的相似度。需要进行说明的是,在计算元素之间的相似度时,只能选择同一种算法进行计算。
需要进行说明的是,第一字符串中第i个元素和第二字符串中第j个元素之间的第二相似度,可以是如上的任意一种相似度,也可以是至少两种相似度的组合,其中,第二相似度取值是在[0,1]区间内。例如:假设第一字符串为“精品电影”,第二字符串为“竞品点映”,在计算第一字符串中第一个元素与第二字符串中第一个元素之间的相似度时,采用的相似度算法,与计算其他元素之间的相似度时选用的算法相同,也即,若在计算“精”和“竞”时选用了编辑距离算法,则在后续计算其他元素之间的相似度时,也同样选用编辑距离算法,直至计算出第一字符串和第二字符串之间的相似度。
步骤204:根据第一相似度和第二相似度,确定第一字符串和第二字符串之间的相似度。
在本步骤中,在确定出包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的第一相似度,以及第一字符串中第i个元素和第二字符串中第j个元素之间的第二相似度之后,将可以根据该第一相似度和该第二相似度,确定第一字符串和第二字符串之间的相似度。
在一种可能的实现方式中,本实施例中,在计算得到第一相似度,以及第二相似度之后,可以将计算得到的第一相似度与第二相似度求和,并将求和后的值确定为第一字符串和第二字符串之间的相似度,也可以基于第一相似度和第二相似度进行预设的函数运算以得到第一字符串和第二字符串之间的相似度。对于第一字符串和第二字符串之间的相似度的确定方法,本发明实施例在此不做限定。
在上述实施例的基础上,第一字符串和第二字符串之间的相似度的类型包括如下中的至少一种:编辑相似度、语义相似度、字符相似度和拼音相似度。
对于这几种类型的相似度,可以参见上述实施例中的介绍,本实施例在此不做赘述。
在一种可能的实现方式中,为了进一步提高确定出的第一字符串和第二字符串之间的相似度,可以分别计算第一字符串中第i个元素和第二字符串中第j个元素之间的至少两种类型的第二相似度,对于每种类型,根据该类型的第一相似度和第二相似度,确定第一字符串和第二字符串在该类型下的相似度;以及根据第一字符串和第二字符串在至少两种类型下的相似度,确定第一字符串和第二字符串之间的相似度。
具体的,对于上述各类型的相似度的计算方式,可以参照上述实施例中的介绍。在计算出第一字符串中第i个元素和第二字符串中第j个元素之间的至少两种类型的第二相似度后,对于每种类型,将根据该类型的第一相似度和该类型的第二相似度,确定第一字符串和第二字符串在该类型下的相似度,这样,将可以得到第一字符串和第二字符串在至少两种类型下的相似度。这样,可以将第一字符串和第二字符串在至少两种类型下的相似度中的最大值确定为第一字符串和第二字符串之间的相似度,也可以将第一字符串和第二字符串在至少两种类型下的相似度中的最小值确定为第一字符串和第二字符串之间的相似度,还可以将多个类型下的相似度取平均值,并将得到的平均值确定为第一字符串和第二字符串之间的相似度,当然,也可以基于多种类型下的相似度进行预设的函数运算以得到第一字符串和第二字符串之间的相似度。对于第一字符串和第二字符串之间的相似度的确定方法,本发明实施例在此不做限定。
在本实施例中,由于分别计算第一字符串中第i个元素和第二字符串中第j个元素之间的至少两种类型的第二相似度之后,对于每种类型,根据该类型的第一相似度和第二相似度,确定第一字符串和第二字符串在该类型下的相似度;以及根据第一字符串和第二字符串在至少两种类型下的相似度,确定第一字符串和第二字符串之间的相似度,由此可以进一步提高相似度的准确性。
图3为本发明实施例提供的字符串相似度的确定方法实施例三的流程示意图,本实施例在图2所示实施例的基础上,对如何根据第一相似度和第二相似度,确定第一字符串和第二字符串之间的相似度的过程,进行详细说明。本发明实施例提供的字符串相似度的确定方法包括如下步骤:
步骤301:获取第一字符串和第二字符串。
其中,第一字符串中包括i个元素,第二字符串中包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数。对于第一字符串和第二字符串,可以参考步骤101中的介绍,此处不再赘述。
步骤302:计算第一子字符串与第二子字符串之间的第一相似度。
其中,第一子字符串中包括第一字符串中的前i-1个元素,第二子字符串中包括第二字符串中的前j-1个元素。
步骤303:计算第一字符串中第i个元素和第二字符串中第j个元素之间的第二相似度。
步骤302-步骤303和步骤202-步骤203类似,此处不再赘述。
步骤304:计算第一子字符串与第二字符串之间的第三相似度。
步骤305:计算第二子字符串与第一字符串之间的第四相似度。
步骤306:根据第一相似度、第二相似度、第三相似度和第四相似度,确定第一字符串和第二字符串之间的相似度。
具体的,需要计算包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j个元素的字符串之间的第三相似度,其中,第三相似度可以根据公式ci-1,j=max(ci-2,j-1+si-1,j,ci-2,j,ci-1,j-1)计算,其中,ci-1,j为包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j个元素的字符串之间的第三相似度,ci-2,j-1为包含第一字符串中的前i-2个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度,si-1,j为第一字符串中的第i-1个元素与第二字符串中的第j个元素之间的相似度,ci-2,j为包含第一字符串中的前i-2个元素的字符串与包含第二字符串中的前j个元素的字符串之间的相似度;ci-1,j-1为包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度。
另外,需要计算包含第一字符串中的前i个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的第四相似度,其中,第四相似度可以根据公式ci,j-1=max(ci-1,j-2+si,j-1,ci-1,j-1,ci,j-2)计算,其中,ci,j-1为包含第一字符串中的前i个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的第四相似度,ci-1,j-2为包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-2个元素的字符串之间的相似度,si,j-1为第一字符串中的第i个元素与第二字符串中的第j-1个元素之间的相似度,ci-1,j-1为包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度;ci,j-2为包含第一字符串中的前i个元素的字符串与包含第二字符串中的前j-2个元素的字符串之间的相似度。
在计算出第三相似度和第四相似度后,将根据第一相似度、第二相似度、第三相似度和第四相似度,确定第一字符串和第二字符串之间的相似度。
在上述实施例的基础上,第一字符串和第二字符串之间的相似度的类型包括如下中的至少一种:编辑相似度、语义相似度、字符相似度和拼音相似度。
对于这几种类型的相似度,可以参见上述实施例中的介绍,本实施例在此不做赘述。
在一种可能的实现方式中,为了进一步提高确定出的第一字符串和第二字符串之间的相似度,可以分别计算第一子字符串与第二字符串之间的至少两种类型的第三相似度,并分别计算第二子字符串与第一字符串之间的至少两种类型的第四相似度,对于每种类型,根据该类型的第一相似度、第二相似度、第三相似度和第四相似度,确定第一字符串和第二字符串在该类型下的相似度;以及根据第一字符串和第二字符串在至少两种类型下的相似度,确定第一字符串和第二字符串之间的相似度。
具体的,对于上述各类型的相似度的计算方式,可以参照上述实施例中的介绍。在计算出第一子字符串与第二字符串之间的至少两种类型的第三相似度,以及第二子字符串与第一字符串之间的至少两种类型的第四相似度后,对于每种类型,将根据该类型的第一相似度、该类型的第二相似度、该类型的第三相似度和该类型的第四相似度,确定第一字符串和第二字符串在该类型下的相似度,这样,将可以得到第一字符串和第二字符串在至少两种类型下的相似度。这样,可以将第一字符串和第二字符串在至少两种类型下的相似度中的最大值确定为第一字符串和第二字符串之间的相似度,也可以将第一字符串和第二字符串在至少两种类型下的相似度中的最小值确定为第一字符串和第二字符串之间的相似度,还可以将多个类型下的相似度取平均值,并将得到的平均值确定为第一字符串和第二字符串之间的相似度,当然,也可以基于多种类型下的相似度进行预设的函数运算以得到第一字符串和第二字符串之间的相似度。对于第一字符串和第二字符串之间的相似度的确定方法,本发明实施例在此不做限定。
在本实施例中,由于分别计算第一子字符串与第二字符串之间的至少两种类型的第三相似度,以及第二子字符串与第一字符串之间的至少两种类型的第四相似度之后,对于每种类型,根据该类型的第一相似度、该类型的第二相似度、该类型的第三相似度和该类型的第四相似度,确定第一字符串和第二字符串在该类型下的相似度,由此可以进一步提高相似度的准确性。
在一种可能的实现方式中,在根据第一相似度、第二相似度、第三相似度和第四相似度,确定第一字符串和第二字符串之间的相似度时,可以通过计算第一相似度与第二相似度的和,得到第五相似度,从而确定第三相似度、第四相似度和第五相似度中的最大值,并将上述最大值确定为第一字符串和第二字符串之间的相似度。其中,由于第一字符串中包括i个元素,第二字符串中包括j个元素,包含第一字符串中的前i个元素的字符串与包含第二字符串中的前j个元素的字符串之间的相似度,即为第一字符串和第二字符串之间的相似度,因此,可以根据公式ci,j=max(ci-1,j-1+si,j,ci-1,j,ci,j-1),计算第一字符串与第二字符串之间的相似度,其中,ci,j为包含第一字符串中的前i个元素的字符串与包含第二字符串中的前j个元素的字符串之间的相似度(也即第一字符串和第二字符串之间的相似度),ci-1,j-1为包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度,si,j为第一字符串中的第i个元素与第二字符串中的第j个元素之间的相似度,ci-1,j为包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j个元素的字符串之间的相似度;ci,j-1为包含第一字符串中的前i个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度。
另外,在上述各个实施例的基础上,为了便于对计算出的相似度进行比较,通常,在确定出第一字符串和第二字符串之间的相似度之后,还可以对第一字符串和第二字符串之间的相似度进行归一化处理,然后将归一化处理后得到的数值,确定为第一字符串和第二字符串之间的最终相似度。
具体的,在计算出第一字符串和第二字符串之间的相似度后,将计算出的相似度值进行归一化处理到[0,1]区间,以得到最终相似度。在一种可能的实现方式中,可以按照如下公式对计算出的相似度进行归一化处理:
Figure BDA0001925752610000201
其中,ci,j为计算出的第一字符串和第二字符串之间的相似度,i为第一字符串中包括的元素个数,j为第二字符串中包括的元素个数,score为归一化处理后得到的第一字符串和第二字符串之间的最终相似度。
本发明实施例提供一种字符串相似度的确定方法,通过获取第一字符串和第二字符串,该第一字符串中包括i个元素,该第二字符串中包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数,然后计算第一子字符串与第二子字符串之间的第一相似度,其中,第一子字符串中包括第一字符串中的前i-1个元素,第二子字符串中包括第二字符串中的前j-1个元素,最后根据第一相似度,确定第一字符串和第二字符串之间的相似度。由于考虑了包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度,从而确定第一字符串和第二字符串之间的相似度,这样,避免了现有技术中仅对字符串的每个字符进行是否相等的一一对比并计算相关距离,没有考虑到字符本身可能表现在各个方面(如语音、字形、词义等)的相似性,以确定字符串之间的相似度的现象,从而可以提高确定出的字符串之间相似度的准确性。
下面,分别以第一字符串为str1,第二字符串为str2,且以计算基于字发音的相似度为例,详细说明计算str1和str2之间的相似度的过程。
首先,将str1和str2按照相同的方式切分成为两个元素组:如切分为str1=[x1,x2,…xi],str2=[y1,y2,…yj],其中,i和j分别为正整数。
其中,相同的方式包括都切分成为单个字符或都切分成为词语等等。
下面将详细说明如何计算ci,j的值,其中,ci,j为包含第一字符串中的前i个元素的字符串与包含第二字符串中的前j个元素的字符串之间的相似度,也即第一字符串和第二字符串之间的相似度。
需要进行说明的是,可以将c0,0、ci,0和c0,j的值设置为零。假设i和j的值均为1,则可以根据公式c1,1=max(c0,0+s1,1,c0,1,c1,0)计算c1,1,其中,s1,1为第一字符串中的第1个元素与第二字符串中的第1个元素之间的相似度,c0,0、c0,1和c1,0的值均为零。类似的,可以递推地计算出ci,1,ci,2…ci,j
其中,ci,j为包含str1的前i个元素的字符串和包含str2的前j个元素的字符串之间的相似度,即为str1和str2的基于字发音的相似度。
在计算出ci,j后,对ci,j的值进行归一化处理到[0,1]区间,以得到最终的相似度值score,在具体的实现过程中,可以根据公式
Figure BDA0001925752610000211
进行归一化处理,得到最终的相似度值score。
另外,在实际应用中,由于不确定错误的类型,通常会基于edit distance、wordvector、字形或者字发音,这四种方式分别计算得到四个不同的score值,并从中选择最大值作为第一字符串和第二字符串之间的相似度值。
本发明实施例提供的相似度的确定方法,通过获取第一字符串和第二字符串,该第一字符串中包括i个元素,该第二字符串中包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数,然后计算第一子字符串与第二子字符串之间的第一相似度,其中,第一子字符串中包括第一字符串中的前i-1个元素,第二子字符串中包括第二字符串中的前j-1个元素,最后根据第一相似度,确定第一字符串和第二字符串之间的相似度。由于考虑了包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度,从而确定第一字符串和第二字符串之间的相似度,这样,避免了现有技术中仅对字符串的每个字符进行是否相等的一一对比并计算相关距离,没有考虑到字符本身可能表现在各个方面(如语音、字形、词义等)的相似性,以确定字符串之间的相似度的现象,从而可以提高确定出的字符串之间相似度的准确性。
图4为本发明字符串相似度的确定装置实施例一的结构示意图,该装置可以位于电子设备,参见图4,该装置包括:获取模块11、计算模块12和确定模块13,其中:
获取模块11用于获取第一字符串和第二字符串,所述第一字符串中包括i个元素,所述第二字符串中包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数;
计算模块12用于计算第一子字符串与第二子字符串之间的第一相似度,其中,所述第一子字符串中包括所述第一字符串中的前i-1个元素,所述第二子字符串中包括所述第二字符串中的前j-1个元素;
确定模块13用于根据所述第一相似度,确定所述第一字符串和所述第二字符串之间的相似度。
本发明实施例提供的相似度的确定装置,获取模块11通过获取第一字符串和第二字符串,该第一字符串中包括i个元素,该第二字符串中包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数,计算模块12计算第一子字符串与第二子字符串之间的第一相似度,其中,第一子字符串中包括第一字符串中的前i-1个元素,第二子字符串中包括第二字符串中的前j-1个元素,确定模块13根据第一相似度,确定第一字符串和第二字符串之间的相似度。由于考虑了包含第一字符串中的前i-1个元素的字符串与包含第二字符串中的前j-1个元素的字符串之间的相似度,从而确定第一字符串和第二字符串之间的相似度,这样,避免了现有技术中仅对字符串的每个字符进行是否相等的一一对比并计算相关距离,没有考虑到字符本身可能表现在各个方面(如语音、字形、词义等)的相似性,以确定字符串之间的相似度的现象,从而可以提高确定出的字符串之间相似度的准确性。
可选的,所述计算模块12还用于:
计算所述第一字符串中第i个元素和所述第二字符串中第j个元素之间的第二相似度;
所述确定模块13具体用于:根据所述第一相似度和所述第二相似度,确定所述第一字符串和所述第二字符串之间的相似度。
可选的,所述计算模块12,还用于:计算所述第一子字符串与第二字符串之间的第三相似度;以及计算所述第二子字符串与第一字符串之间的第四相似度;
所述确定模块13,具体用于:根据所述第一相似度、所述第二相似度、所述第三相似度和所述第四相似度,确定所述第一字符串和所述第二字符串之间的相似度。
可选的,所述确定模块13,具体用于:
计算所述第一相似度与所述第二相似度的和,得到第五相似度;
确定所述第三相似度、所述第四相似度和所述第五相似度中的最大值,并将所述最大值确定为所述第一字符串和所述第二字符串之间的相似度。
可选的,所述计算模块12,具体用于:分别计算所述第一子字符串与所述第二子字符串之间的至少两种类型的第一相似度;
所述确定模块13,具体用于:对于每种类型,根据该类型的第一相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
可选的,所述计算模块12,具体用于:分别计算所述第一字符串中第i个元素和所述第二字符串中第j个元素之间的至少两种类型的第二相似度;
所述确定模块13,具体用于:对于每种类型,根据该类型的第一相似度和第二相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
可选的,所述计算模块12,具体用于:分别计算所述第一子字符串与所述第二字符串之间的至少两种类型的第三相似度;以及计算所述第二子字符串与所述第一字符串之间的至少两种类型的第四相似度;
所述确定模块13,具体用于:对于每种类型,根据该类型的第一相似度、第二相似度、第三相似度和第四相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
可选的,所述第一字符串和所述第二字符串之间的相似度的类型包括如下中的至少一种:编辑相似度、语义相似度、字符相似度和拼音相似度。
可选的,所述确定模块13,具体用于:
对所述第一字符串和所述第二字符串之间的相似度进行归一化处理;
将归一化处理后得到的数值,确定为所述第一字符串和所述第二字符串之间的最终相似度。
可选的,所述获取模块11,具体用于:
获取输入信息,并将所述输入信息对应的字符串确定为所述第一字符串;
获取所述输入信息接收时刻设备屏幕中的显示信息,并将所述显示信息对应的字符串确定为所述第二字符串。
上述装置可用于执行上述对应方法实施例提供的方法,具体实现方式和技术效果类似,这里不再赘述。
图5为本发明实施例提供的一种电子设备50的结构示意图,请参见图5所示,该电子设备50可以包括处理器501和存储器502,其中,
存储器502用于存储程序消息。
处理器501用于读取存储器502中的程序消息,并根据存储器502中的程序消息执行上述任一实施例所示的字符串相似度的确定方法。
本发明实施例所示的电子设备50,可以执行上述任一实施例所示的字符串相似度的确定方法的技术方案,其实现原理以及有益效果与字符串相似度的确定方法的实现原理以及有益效果类似,此处不再进行赘述。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,在计算机程序被处理器执行时,可以执行上述任一实施例所示的字符串相似度的确定方法的技术方案,其实现原理以及有益效果与字符串相似度的确定方法的实现原理以及有益效果类似,此处不再进行赘述。
上述实施例中处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的指令,结合其硬件完成上述方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。

Claims (10)

1.一种字符串相似度的确定方法,其特征在于,包括:
获取第一字符串和第二字符串,所述第一字符串包括i个元素,所述第二字符串包括j个元素,i∈[1,…,n],j∈[1,…,m],n和m均为正整数;
计算第一子字符串与第二子字符串之间的第一相似度,其中,所述第一子字符串中包括所述第一字符串中的前i-1个元素,所述第二子字符串中包括所述第二字符串中的前j-1个元素;
根据所述第一相似度,确定所述第一字符串和所述第二字符串之间的相似度。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
计算所述第一字符串中第i个元素和所述第二字符串中第j个元素之间的第二相似度;
根据所述第一相似度和所述第二相似度,确定所述第一字符串和所述第二字符串之间的相似度。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一相似度和所述第二相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
计算所述第一子字符串与第二字符串之间的第三相似度;
计算所述第二子字符串与第一字符串之间的第四相似度;
根据所述第一相似度、所述第二相似度、所述第三相似度和所述第四相似度,确定所述第一字符串和所述第二字符串之间的相似度。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一相似度、所述第二相似度、所述第三相似度和所述第四相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
计算所述第一相似度与所述第二相似度的和,得到第五相似度;
确定所述第三相似度、所述第四相似度和所述第五相似度中的最大值,并将所述最大值确定为所述第一字符串和所述第二字符串之间的相似度。
5.根据权利要求1所述的方法,其特征在于,所述计算第一子字符串与第二子字符串之间的第一相似度,包括:
分别计算所述第一子字符串与所述第二子字符串之间的至少两种类型的第一相似度;
所述根据所述第一相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
对于每种类型,根据该类型的第一相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
6.根据权利要求2所述的方法,其特征在于,所述计算所述第一字符串中第i个元素和所述第二字符串中第j个元素之间的第二相似度,包括:
分别计算所述第一字符串中第i个元素和所述第二字符串中第j个元素之间的至少两种类型的第二相似度;
根据所述第一相似度和所述第二相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
对于每种类型,根据该类型的第一相似度和第二相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
7.根据权利要求3所述的方法,其特征在于,计算所述第一子字符串与第二字符串之间的第三相似度,包括:
分别计算所述第一子字符串与所述第二字符串之间的至少两种类型的第三相似度;
所述计算所述第二子字符串与第一字符串之间的第四相似度,包括:
分别计算所述第二子字符串与所述第一字符串之间的至少两种类型的第四相似度;
所述根据所述第一相似度、所述第二相似度、所述第三相似度和所述第四相似度,确定所述第一字符串和所述第二字符串之间的相似度,包括:
对于每种类型,根据该类型的第一相似度、第二相似度、第三相似度和第四相似度,确定所述第一字符串和所述第二字符串在该类型下的相似度;以及根据所述第一字符串和所述第二字符串在所述至少两种类型下的相似度,确定所述第一字符串和所述第二字符串之间的相似度。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一字符串和所述第二字符串之间的相似度的类型包括如下中的至少一种:编辑相似度、语义相似度、字符相似度和拼音相似度。
9.根据权利要求1-7任一项所述的方法,其特征在于,所述根据所述第一相似度,确定所述第一字符串和所述第二字符串之间的相似度之后,所述方法还包括:
对所述第一字符串和所述第二字符串之间的相似度进行归一化处理;
将归一化处理后得到的数值,确定为所述第一字符串和所述第二字符串之间的最终相似度。
10.根据权利要求1-7任一项所述的方法,其特征在于,所述获取第一字符串和第二字符串,包括:
获取输入信息,并将所述输入信息对应的字符串确定为所述第一字符串;
获取所述输入信息接收时刻设备屏幕中的显示信息,并将所述显示信息对应的字符串确定为所述第二字符串。
CN201811615551.3A 2018-12-27 2018-12-27 字符串相似度的确定方法和装置 Active CN111382322B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811615551.3A CN111382322B (zh) 2018-12-27 2018-12-27 字符串相似度的确定方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811615551.3A CN111382322B (zh) 2018-12-27 2018-12-27 字符串相似度的确定方法和装置

Publications (2)

Publication Number Publication Date
CN111382322A true CN111382322A (zh) 2020-07-07
CN111382322B CN111382322B (zh) 2023-06-13

Family

ID=71219542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811615551.3A Active CN111382322B (zh) 2018-12-27 2018-12-27 字符串相似度的确定方法和装置

Country Status (1)

Country Link
CN (1) CN111382322B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114996347A (zh) * 2022-06-24 2022-09-02 中国电信股份有限公司 一种用户画像管理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004049240A1 (en) * 2002-11-28 2004-06-10 Nokia Corporation Method and device for determining and outputting the similarity between two data strings
CN103294776A (zh) * 2013-05-13 2013-09-11 浙江大学 一种智能手机通讯录模糊搜索的方法
CN106033416A (zh) * 2015-03-09 2016-10-19 阿里巴巴集团控股有限公司 一种字符串处理方法及装置
WO2018030601A1 (ko) * 2016-08-08 2018-02-15 김영길 오타 문자 수정 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004049240A1 (en) * 2002-11-28 2004-06-10 Nokia Corporation Method and device for determining and outputting the similarity between two data strings
CN103294776A (zh) * 2013-05-13 2013-09-11 浙江大学 一种智能手机通讯录模糊搜索的方法
CN106033416A (zh) * 2015-03-09 2016-10-19 阿里巴巴集团控股有限公司 一种字符串处理方法及装置
WO2018030601A1 (ko) * 2016-08-08 2018-02-15 김영길 오타 문자 수정 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孙海霞;成颖;: "信息集成中的字符串匹配技术研究" *
王静婷;: "基于规则的中文字符串近似匹配研究" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114996347A (zh) * 2022-06-24 2022-09-02 中国电信股份有限公司 一种用户画像管理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111382322B (zh) 2023-06-13

Similar Documents

Publication Publication Date Title
CN109117777B (zh) 生成信息的方法和装置
CN107220235B (zh) 基于人工智能的语音识别纠错方法、装置及存储介质
CN107230475B (zh) 一种语音关键词识别方法、装置、终端及服务器
CN109147767B (zh) 语音中的数字识别方法、装置、计算机设备及存储介质
CN109697291B (zh) 文本的语义段落识别方法和装置
WO2018149209A1 (zh) 语音识别方法、电子设备以及计算机存储介质
CN111695352A (zh) 基于语义分析的评分方法、装置、终端设备及存储介质
JP6541673B2 (ja) モバイル機器におけるリアルタイム音声評価システム及び方法
EP2869298A1 (en) Information identification method and apparatus
JP2020004382A (ja) 音声対話方法及び装置
CN113326702B (zh) 语义识别方法、装置、电子设备及存储介质
CN112214576B (zh) 舆情分析方法、装置、终端设备及计算机可读存储介质
CN114970514A (zh) 基于人工智能的中文分词方法、装置、计算机设备及介质
CN112926300A (zh) 图像搜索方法、图像搜索装置及终端设备
CN111444321B (zh) 问答方法、装置、电子设备和存储介质
CN115312033A (zh) 基于人工智能的语音情感识别方法、装置、设备及介质
CN111382322B (zh) 字符串相似度的确定方法和装置
CN112949290A (zh) 文本纠错方法、装置及通信设备
CN111858966A (zh) 知识图谱的更新方法、装置、终端设备及可读存储介质
CN114970470B (zh) 文案信息处理方法、装置、电子设备和计算机可读介质
CN115691503A (zh) 语音识别方法、装置、电子设备和存储介质
CN113470617B (zh) 语音识别方法以及电子设备、存储装置
CN114242047A (zh) 一种语音处理方法、装置、电子设备及存储介质
CN114528851A (zh) 回复语句确定方法、装置、电子设备和存储介质
CN113743409A (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