一种字符串匹配方法及装置与流程

文档序号:16537413发布日期:2019-01-08 20:01阅读:160来源:国知局
一种字符串匹配方法及装置与流程
本发明涉及数据科学领域,尤其涉及一种字符串匹配方法及装置。
背景技术
:企业名称匹配是风险控制领域非常重要的技术。例如,在金融行业,尤其在信贷行业,经常要客户填写企业名称用于风险管理,并对客户所填写的企业名称进行匹配。举个例子,可以用客户填写的企业名称与其征信报告的企业名称进行匹配,看是否客户之前是否也在该企业工作;或者,可以用该客户的企业名称与其他客户的企业名称对比,看该客户是否还有同事也是本机构客户。现有技术在进行企业名称的匹配时,通常采用人工对比的方式来进行匹配,即认为地对不同的企业名称进行匹配。显然,这种方式人力成本较高,且操作复杂,耗时较长。基于此,目前亟需一种字符串匹配方法,用于解决现有技术中采用人工对比的方式进行字符串匹配导致人力成本较高的问题。技术实现要素:本发明实施例提供一种字符串匹配方法及装置,以解决现有技术中采用人工对比的方式进行字符串匹配导致人力成本较高的技术问题。本发明实施例提供一种字符串匹配方法,所述方法包括:获取第一字符串和第二字符串;分别对所述第一字符串和所述第二字符串进行分词,得到所述第一字符串包含的各词以及所述第二字符串包含的各词;根据预设的字段与词的对应关系,确定所述第一字符串包含的各词分别对应的字段,以及所述第二字符串包含的各词分别对应的字段;根据所述第一字符串包含的各词及分别对应的字段、所述第二字符串包含的各词及分别对应的字段以及每个字段的权重值,确定所述第一字符串和所述第二字符串的匹配度;所述每个字段的权重值是根据多个样本字符串确定的;若确定所述匹配度大于预设阈值,则确定所述第一字符串与所述第二字符串相匹配。如此,通过设定不同字段的权重值,可以提高不同的字符串之间匹配的准确度;进一步地,相比于现有技术中人工对比的方式而言,本发明实施例无需人工对比,有效降低了人力成本,能够简化对企业名称进行匹配的操作,并且还可以缩短匹配时间。在一种可能的实现方式中,所述每个字段的权重值通过以下方式确定:对每个样本字符串进行分词,得到所述每个样本字符串包含的各词;根据所述字段与词的对应关系,确定所述每个样本字符串包含的各词分别对应的各字段;根据每个字段对应的词的重复率,确定所述每个字段的重复率;根据所述每个字段的重复率,确定所述每个字段的权重值。如此,根据每个字段的重复率确定出的字段的权重值,能够使得确定出的权重值更加准确,更加符合字段的重要程度,进而提高不同的字符串之间进行匹配的准确度。在一种可能的实现方式中,在根据所述每个字段对应的多个词,确定所述每个字段的重复率之前,所述方法还包括:根据所述每个字段对应的词,确定所述每个字段对应的任意一个词在所述字段对应的词中的重复率。在一种可能的实现方式中,根据所述每个字段的重复率,确定所述每个字段的权重值,包括:根据所述每个字段的重复率,确定所述每个字段对应的多个词之间的区分度;根据所述每个字段对应的多个词之间的区分度,确定所有字段对应的总区分度;根据所述每个字段的区分度,以及所述所有字段对应的总区分度,确定所述字段的权重值。本发明实施例提供一种字符串匹配装置,所述装置包括:获取单元,用于获取第一字符串和第二字符串;处理单元,用于分别对所述第一字符串和所述第二字符串进行分词,得到所述第一字符串包含的各词以及所述第二字符串包含的各词;并根据预设的字段与词的对应关系,确定所述第一字符串包含的各词分别对应的字段,以及所述第二字符串包含的各词分别对应的字段;以及根据所述第一字符串包含的各词及分别对应的字段、所述第二字符串包含的各词及分别对应的字段以及每个字段的权重值,确定所述第一字符串和所述第二字符串的匹配度;所述每个字段的权重值是根据多个样本字符串确定的;匹配单元,用于若确定所述匹配度大于预设阈值,则确定所述第一字符串与所述第二字符串相匹配。在一种可能的实现方式中,所述处理单元具体用于:对每个样本字符串进行分词,得到所述每个样本字符串包含的各词;并根据所述字段与词的对应关系,确定所述每个样本字符串包含的各词分别对应的各字段;并根据每个字段对应的词的重复率,确定所述每个字段的重复率;以及根据所述每个字段的重复率,确定所述每个字段的权重值。在一种可能的实现方式中,所述处理单元在根据所述每个字段对应的多个词,确定所述每个字段的重复率之前,还用于:根据所述每个字段对应的词,确定所述每个字段对应的任意一个词在所述字段对应的词中的重复率。在一种可能的实现方式中,所述具体单元具体用于:根据所述每个字段的重复率,确定所述每个字段对应的多个词之间的区分度;并根据所述每个字段对应的多个词之间的区分度,确定所有字段对应的总区分度;以及根据所述每个字段的区分度,以及所述所有字段对应的总区分度,确定所述字段的权重值。本申请实施例的还提供一种装置,该装置具有实现上文所描述的字符串匹配方法的功能。该功能可以通过硬件执行相应的软件实现,在一种可能的设计中,该装置包括:处理器、收发器、存储器;该存储器用于存储计算机执行指令,该收发器用于实现该装置与其他通信实体进行通信,该处理器与该存储器通过该总线连接,当该装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该装置执行上文所描述的字符串匹配方法。本发明实施例还提供一种计算机存储介质,所述存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时实现上述各种可能的实现方式中所描述的字符串匹配方法。本发明实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各种可能的实现方式中所描述的字符串匹配方法。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。图1为本发明实施例提供的一种字符串匹配方法的流程示意图;图2为本发明实施例提供的一种字段的权重值的确定方法所对应的流程示意图;图3为本发明实施例提供一种字符串匹配装置的结构示意图。具体实施方式下面结合说明书附图对本申请进行具体说明,方法实施例中的具体操作方法也可以应用于装置实施例中。现有技术在确定两个企业名称是否匹配时,除了采用人工比对的方式,还可以使用计算机进行全字符匹配。然而,这种方法可能会出现误判。举个例子,若所需匹配的两个企业名称分别为“联想公司”和“百度公司”,采用现有的全字符匹配的方式,由于“联想公司”这一字符串中的词“公司”与“百度公司”这一字符串中的词“公司”相等,因此,现有技术可能会认为“联想公司”和“百度公司”相匹配。显然,这种认知是错误的。基于此,本发明实施例提供一种字符串匹配方法,如图1所示,为本发明实施例提供的一种字符串匹配方法的流程示意图,具体包括如下步骤:步骤101,获取第一字符串和第二字符串。步骤102,分别对所述第一字符串和所述第二字符串进行分词,得到所述第一字符串包含的各词以及所述第二字符串包含的各词。步骤103,根据预设的字段与词的对应关系,确定所述第一字符串包含的各词分别对应的字段,以及所述第二字符串包含的各词分别对应的字段。步骤104,根据所述第一字符串包含的各词及分别对应的字段、所述第二字符串包含的各词及分别对应的字段以及每个字段的权重值,确定所述第一字符串和所述第二字符串的匹配度。步骤105,若确定所述匹配度大于预设阈值,则确定所述第一字符串与所述第二字符串相匹配。如此,通过设定不同字段的权重值,可以提高不同的字符串之间匹配的准确度;进一步地,相比于现有技术中人工对比的方式而言,本发明实施例无需人工对比,有效降低了人力成本,能够简化对企业名称进行匹配的操作,并且还可以缩短匹配时间。具体来说,步骤101中,字符串的匹配可以适用于两个字符串之间的,也可以适用于多个字符串之间的匹配。字符串是由多个字符组成的,组成字符串的字符个数可以根据具体需求而定。组成字符串的内容也可以根据具体需求而定,比如,若需要匹配的是企业名称类的字符串,则获取到的字符串可以为“联想公司”、“百度公司”等。步骤102中,字符串通常包括多个字符,考虑到字符与字符之间的联系,可以先对字符串进行分词处理。举个例子,第一字符串为“北京xxx信息技术股份有限公司”,该字符串进行分词后可以分为“北京”、“xxx”、“信息技术”、“股份有限公司”这四个词;第二字符串为“上海xxx信息技术股份有限公司”,该字符串进行分词后可以分为“上海”、“xxx”、“信息技术”、“股份有限公司”这四个词。步骤103中,根据所需匹配的字符串的类型,可以确定该类字符串对应的字段。以字符串类型为企业名称类为例,通常情况下,企业名称一般由行政区划、字号、行业、组织形式依次组成(法律法规另有规定的除外),也就是说,企业名称类的字符串一般具有行政区划、字号、行业、组织形式这四个字段。进一步地,根据预设的字段与词的对应关系,可以确定字符串包含的各词分别对应的字段。具体来说,字段与词的对应关系可以通过以下方式确定:(1)企业名称类的字符串中的“行政区划”这一字段,可以为本企业所在地县级以上行政区划的名称或地名。在某些特殊的情况下,也可以将国家名称作为行政区划处理。即,“行政区划”字段对应地名、行政区名、国家名等类型的词。(2)企业名称类的字符串中的“字号”这一字段,可以由两个以上汉字组成。可以使用自然人投资人的姓名作字号,但行政区划不可以用作字号(县以上行政区划地名具有其他含义的除外)。即,“字号”字段对应人名、品牌名等类型的词。(3)企业名称类的字符串中的“行业”这一字段,应当是反映企业经济活动性质所属国民经济行业或者企业经营特点的用语,并且“行业”这一字段所表述的内容应当与企业经营范围一致。企业经济活动性质分别属于国民经济行业不同大类的,应当选择主要经济活动性质所属国民经济行业类别用语表述企业名称中的行业。即,“行业”字段对应行业类别、经营特点等类型的词。(4)企业名称类的字符串中的“组织形式”这一字段,根据相关法律法规,公司制企业可以申请用“有限公司”、“有限责任公司”、“股份有限公司”等作为组织形式;非公司制企业可以申请用“厂”、“店”、“部”、“中心”等作为组织形式。即,“组织形式”字段对应“有限公司”、“有限责任公司”、“股份有限公司”、“厂”、“店”、“部”、“中心”等词。举个例子,若第一字符串为“北京aa信息技术股份有限公司”,第二字符串为“北京aa技术有限公司”,如表1所述,为字符串包含的各词所对应的字段的一种示例。具体可参见表1示出的内容,此处不再详细描述。表1:字符串包含的各词所对应的字段的一种示例字符串行政区划字号行业组织形式第一字符串北京aa信息技术股份有限公司第二字符串北京aa技术有限公司步骤104中,每个字段的权重值可以根据多个样本字符串确定。具体来说,如图2所示,为本发明实施例提供的一种字段的权重值的确定方法所对应的流程示意图,具体包括如下步骤:步骤201,对每个样本字符串进行分词,得到所述每个样本字符串包含的各词。在执行上述步骤201之前,可以先对样本字符串进行数据清洗,具体的数据清洗的方法有多种,比如统一字符集、删除非中文字符、删除重复字符串等,具体不做限定。进一步地,对样本字符串进行分词的方式可以参考上述步骤102中所描述的内容,此处不再具体描述。步骤202,根据所述字段与词的对应关系,确定所述每个样本字符串包含的各词分别对应的各字段。其中,确定样本字符串包含的各词分别对应的各字段的方法可以参考上述步骤103中所描述的内容,此处不再具体描述。举个例子,如表2所示,为样本字符串对应的字段的一种示例。其中,样本1为“联动优势公司”,对应的字号字段的词为“联动优势”,对应的组织形式的词为“公司”;样本2为“联想集团”,对应的字号字段的词为“联想”,对应的组织形式的词为“集团”;样本3为“联想公司”,对应的字号字段的词为“联想”,对应的组织形式的词为“公司”;样本4为“百度公司”,对应的字号字段的词为“百度”,对应的组织形式的词为“公司”。表2:样本字符串对应的字段的一种示例编号样本字符串字号字段组织形式字段样本1联动优势公司联动优势公司样本2联想集团联想集团样本3联想公司联想公司样本4百度公司百度公司步骤203,根据每个字段对应的词的重复率,确定所述每个字段的重复率。在执行上述步骤203之前,可以先根据每个字段对应的词,确定每个字段对应的任意一个词在字段对应的词中的重复率,即先确定每个字段中词的重复率。具体来说,在计算某个词的重复率时,可以采用公式(1)来确定该词的重复率。其中,ci为字段对应的第i个词的重复率;nci第i个词在字段中重复出现的次数;n为字段所对应的词的总数。举个例子,以表2示出的样本字符串为例,如表3所示,为样本字符串中各词的重复率的一种示例。表3示出的字号字段中,“联动优势”对应的重复率为0,“联想”对应的重复率为1/3,“百度”对应的重复率为0;表3示出的组织形式字段中,“公司”对应的重复率为2/3,“集团”对应的重复率为0。表3:样本字符串中各词的重复率的一种示例进一步地,确定每个字段的重复率的方法有多种,一个示例中,可以将每个字段对应的词的重复率的平均值作为该字段的重复率。具体来说,在计算某个字段的重复率时,可以采用公式(2)来确定该字段的重复率。其中,zj为第j个字段的重复率;ci为第j个字段对应的第i个词的重复率;nj为第j个字段所对应的词的总数。举个例子,以表3示出的样本字符串中各词的重复率为例,如表4所示,为样本字符串的字段的重复率的一种示例。其中,字号字段的重复率为1/6,组织形式字段的重复率为1/2。表4:样本字符串的字段的重复率的一种示例字号字段组织形式字段字段的重复率1/61/2在其它可能的示例中,也可以采用其它方法来确定字段的重复率,比如,根据字段对应的词的重复率和预设的系数来确定字段的重复率,具体不做限定。步骤204,根据所述每个字段的重复率,确定所述每个字段的权重值。本发明实施例中,字段的权重值的确定方式有多种,一种可能的实现方式为,先根据每个字段的重复率,确定每个字段对应的多个词之间的区分度,然后根据每个字段对应的多个词之间的区分度,确定所有字段对应的总区分度,进而可以根据每个字段的区分度,以及所有字段对应的总区分度,确定字段的权重值。具体来说,字段的重复率与字段对应的词的重复率正相关,也就是说,字段的重复率越高,表明字段对应的词重复的次数越多,越不容易区分字段对应的各词,即字段的重复率与字段对应的多个词之间的区分度呈负相关的关系。进一步地,在计算某个字段对应的多个词之间的区分度时,可以采用公式(3)来确定该字段对应的多个词之间的区分度。qj=1-zj公式(3)其中,qj为第j个字段对应的多个词之间的区分度;zj为第j个字段的重复率。举个例子,以表4示出的样本字符串的字段的重复率为例,如表5所示,为样本字符串的字段的区分度的一种示例。其中,字号字段的区分度为5/6,组织形式字段的区分度为1/2。表5:样本字符串的字段的区分度的一种示例字号字段组织形式字段字段的重复率1/61/2字段的区分度5/61/2进一步地,所有字段的总区分度可以为每个字段的区分度之和,以表5示出的字符串的所有字段的总区分度为5/6+1/2=8/6。更进一步地,字段的区分度越大,可以分配较大的权重值。具体来说,可以采用公式(4)来确定该字段的权重值。其中,wj为第j个字段的权重值;qj为第j个字段对应的多个词之间的区分度;∑qj为所有字段的总区分度。举个例子,以表5示出的样本字符串的字段的区分度为例,如表6所示,为样本字符串的字段的权重值的一种示例。其中,字号字段的权重值为5/8,组织形式字段的权重值为3/8。表5:样本字符串的字段的权重值的一种示例字号字段组织形式字段字段的重复率1/61/2字段的区分度5/61/2字段的权重值5/83/8在其它可能的实现方式中,还可以采用其它方式来确定字段的权重值,比如可以是本领域技术人员可以根据经验和实际情况,结合字段的重复率来确定字段的权重值。采用上述步骤201至步骤205所描述的内容确定出的字段的权重值,能够使得确定出的权重值更加准确,更加符合字段的重要程度,进而提高不同的字符串之间进行匹配的准确度。本发明实施例中,第一字符串和第二字符串的匹配度可以结合上文确定出的字段的权重值来确定。具体来说,可以先根据第一字符串包含的各词及对应的字段、第二字符串包含的各词即对应的字段,来确定字段中分别属于第一字符串和第二字符串的词是否相同,若相同,则根据该字段的权重值来确定第一字符串和第二字符串的匹配度。举个例子,若第一字符串为“a公司”,第二字符串为“a有限公司”。可知,第一字符串中“a”对应字号字段,“公司”对应组织形式字段;第二字符串中“a”对应字号字段,“有限公司”对应组织形式字段。进一步可知,第一字符串与第二字符串之间,字号字段对应的词(即“a”)相同,组织形式字段对应的词不同。更进一步地,若字号字段的权重值为5/8,组织形式字段的权重值为3/8,则可以确定第一字符串与第二字符串的匹配度为5/8。步骤105中,预设阈值可以为本领域技术人员根据经验和实际情况确定的,具体不做限定。举个例子,若设定预设阈值为1/2,第一字符串为“a公司”,第二字符串为“a有限公司”,则根据上文可以确定第一字符串与第二字符串的匹配度为5/8,该匹配度(即5/8)大于预设阈值(1/2),确定第一字符串与第二字符串相匹配。进一步地,若确定所述匹配度小于或等于预设阈值,则可以确定所述第一字符串与所述第二字符串不匹配。基于同样的发明构思,图3示例性示出了本发明实施例提供一种字符串匹配装置的结构示意图,如图3所示,该装置包括获取单元301、处理单元302和匹配单元303;其中,获取单元301,用于获取第一字符串和第二字符串;处理单元302,用于分别对所述第一字符串和所述第二字符串进行分词,得到所述第一字符串包含的各词以及所述第二字符串包含的各词;并根据预设的字段与词的对应关系,确定所述第一字符串包含的各词分别对应的字段,以及所述第二字符串包含的各词分别对应的字段;以及根据所述第一字符串包含的各词及分别对应的字段、所述第二字符串包含的各词及分别对应的字段以及每个字段的权重值,确定所述第一字符串和所述第二字符串的匹配度;所述每个字段的权重值是根据多个样本字符串确定的;匹配单元303,用于若确定所述匹配度大于预设阈值,则确定所述第一字符串与所述第二字符串相匹配。在一种可能的实现方式中,所述处理单元302具体用于:对每个样本字符串进行分词,得到所述每个样本字符串包含的各词;并根据所述字段与词的对应关系,确定所述每个样本字符串包含的各词分别对应的各字段;并根据每个字段对应的词的重复率,确定所述每个字段的重复率;以及根据所述每个字段的重复率,确定所述每个字段的权重值。在一种可能的实现方式中,所述处理单元302在根据所述每个字段对应的多个词,确定所述每个字段的重复率之前,还用于:根据所述每个字段对应的词,确定所述每个字段对应的任意一个词在所述字段对应的词中的重复率。在一种可能的实现方式中,所述具体单元302具体用于:根据所述每个字段的重复率,确定所述每个字段对应的多个词之间的区分度;并根据所述每个字段对应的多个词之间的区分度,确定所有字段对应的总区分度;以及根据所述每个字段的区分度,以及所述所有字段对应的总区分度,确定所述字段的权重值。本申请实施例的还提供一种装置,该装置具有实现上文所描述的字符串匹配方法的功能。该功能可以通过硬件执行相应的软件实现,在一种可能的设计中,该装置包括:处理器、收发器、存储器;该存储器用于存储计算机执行指令,该收发器用于实现该装置与其他通信实体进行通信,该处理器与该存储器通过该总线连接,当该装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该装置执行上文所描述的字符串匹配方法。本发明实施例还提供一种计算机存储介质,所述存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时实现上述各种可能的实现方式中所描述的字符串匹配方法。本发明实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各种可能的实现方式中所描述的字符串匹配方法。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1