将目标字符串转化为规范化字符串的方法及装置与流程

文档序号:11234085阅读:316来源:国知局
将目标字符串转化为规范化字符串的方法及装置与流程
本申请涉及通信领域,尤其涉及一种将目标字符串转化为规范化字符串的方法及装置。
背景技术
:在互联网平台中,用户输入的地址、公司名称等短文本,与规范化的地址、公司名称相比,通常可能会存在一定的差异,然而二者可能仍然是相同的。例如,假设从用户在互联网平台中预留的简历中采集的公司名称为“支付宝公司”,而支付宝公司的规范化的全称实际为“支付宝网络技术有限公司”,这两个地址虽然存在一定的差异,但实际为同一个公司名称。因此,针对这种情况,对用户提供的这些短文本进行规范化,对于后续的数据处理和使用都具有非常重要的意义。技术实现要素:本申请提出一种将目标字符串转化为规范化字符串的方法,该方法包括:基于指定的切分长度针对目标字符串进行遍历切分,得到第一切分单元集合;在预设的索引列表中查找与所述第一切分单元集合中各切分单元关联的规范化字符串,得到与所述第一切分单元集合对应的规范化字符串集合;所述索引列表包括针对规范化字符串进行遍历切分得到的切分单元、以及所述切分单元关联的规范化字符串;计算所述目标字符串与所述规范化字符串集合中各字符串的相似度;基于计算出的所述相似度在所述规范化字符串集合中查找与所述目标字符串对应的规范化字符串;将该目标字符串转化为查找到的规范化字符串。可选的,所述预设的索引列表按照如下方式生成:基于所述指定的切分长度针对数据库中存储的规范化字符串进行遍历切分,得到第二切分单元集合;针对所述第二切分单元集合中各切分单元分别生成对应的索引表项;其中,所述索引表项记录的信息包括规范化字符串的各切分单元、以及所述各切分单元在所述数据库中关联的规范化字符串。可选的,所述索引表项记录的信息还包括所述各切分单元在所述数据库中关联的规范化字符串的数量;所述方法还包括:基于所述数量针对所述索引列表中的索引表项进行排序;删除所述索引列表中记录的所述数量大于预设的第一阈值的索引表项。可选的,所述方法还包括:当任一规范化字符串的切分单元在所述索引列表中对应的索引表项均被删除时,将该切分单元所对应的索引表项中记录的所述数量最小的索引表项添加至所述索引列表中。可选的,所述在预设的索引列表中查找与所述第一切分单元集合中各切分单元关联的规范化字符串,得到与所述第一切分单元集合对应的规范化字符串集合包括:将所述第一切分单元集合中的切分单元在所述索引列表中进行匹配;获取所述第一切分单元集合中的切分单元在所述索引列表中匹配到的索引表项;提取获取到的所述索引表项中记录的所述规范化字符串,生成所述规范化字符串集合;或者,提取获取到的索引表项中记录的所述数量低于预设的第二阈值的索引 表项中记录的所述规范化字符串,生成所述规范化字符串集合;其中,所述第二阈值小于所述第一阈值。可选的,所述计算所述目标字符串与所述规范化字符串集合中各字符串的相似度包括:计算所述目标字符串与所述规范化字符串集合中各字符串的编辑距离;计算所述目标字符串与所述各字符串的长度中的最大值和最小值;计算减去所述编辑距离后的所述最大值与所述最小值的比值,基于该比值表征所述目标字符串与所述各字符串的相似度;或者计算所述最大值与加上所述编辑距离后的所述最小值的比值,基于该比值表征所述目标字符串与所述各字符串的相似度。可选的,所述基于编辑距离计算所述目标字符串与获取到的所述规范化字符串的相似度包括:基于预设的相似度计算公式计算所述目标字符串与所述规范化字符串集合中各字符串的相似度;所述相似度计算公式包括:或其中,x表示目标字符串,|x|表示目标字符的长度;y表示规范化字符串,|y|表示所述规范化字符串的长度;max(|x|,|y|)表示目标字符串与所述规范化字符串的长度中的最大值;min(|x|,|y|)表示表示目标字符串与所述规范化字符串长度中的最小值;ds表示目标字符串与所述规范化字符串的编辑距离;c表示修正参数,为大于或者等于0的常数。可选的,所述基于计算出的所述相似度在所述规范化字符串集合中查找与所述目标字符串对应的规范化字符串包括:判断计算出的所述目标字符串与所述规范化字符串集合中各字符串的相似度是否达到预设的相似度阈值;当所述目标字符串与所述规范化字符串集合中任一字符串的相似度达到预设的相似度阈值时,则确定该字符串为与所述目标字符串对应的规范化字符串。本申请还提出一种将目标字符串转化为规范化字符串的装置,该装置包括:第一切分模块,用于基于指定的切分长度针对目标字符串进行遍历切分,得到第一切分单元集合;获取模块,用于在预设的索引列表中查找与所述第一切分单元集合中各切分单元关联的规范化字符串,得到与所述第一切分单元集合对应的规范化字符串集合;所述索引列表包括针对规范化字符串进行遍历切分得到的切分单元、以及所述切分单元关联的规范化字符串;计算模块,用于计算所述目标字符串与所述规范化字符串集合中各字符串的相似度;查找模块,用于基于计算出的所述相似度在所述规范化字符串集合中查找与所述目标字符串对应的规范化字符串;转化模块,用于将该目标字符串转化为查找到的规范化字符串。可选的,所述装置还包括:第二切分模块,用于基于所述指定的切分长度针对数据库中存储的规范化字符串进行遍历切分,得到第二切分单元集合;生成模块,用于针对所述第二切分单元集合中各切分单元分别生成对应的索引表项;其中,所述索引表项记录的信息包括规范化字符串的各切分单元、以及所述各切分单元在所述数据库中关联的规范化字符串。可选的,所述索引表项记录的信息还包括所述各切分单元在所述数据库中关联的规范化字符串的数量;所述装置还包括:排序模块,用于基于所述数量针对所述索引列表中的索引表项进行排序;删除模块,用于删除所述索引列表中记录的所述数量大于预设的第一阈 值的索引表项。可选的,所述装置还包括:添加模块,用于在任一规范化字符串进行字符切分得到的切分单元,在所述索引列表中对应的索引表项均被删除时,将该切分单元所对应的索引表项中记录的所述数量最小的索引表项添加至所述索引列表中。可选的,所述获取模块具体用于:将所述第一切分单元集合中的切分单元在所述索引列表中进行匹配;获取所述第一切分单元集合中的切分单元在所述索引列表中匹配到的索引表项;提取获取到的所述索引表项中记录的所述规范化字符串,生成所述规范化字符串集合;或者,提取获取到的索引表项中记录的所述数量低于预设的第二阈值的索引表项中记录的所述规范化字符串,生成所述规范化字符串集合;其中,所述第二阈值小于所述第一阈值。可选的,所述计算模块具体用于:计算所述目标字符串与所述规范化字符串集合中各字符串的编辑距离;计算所述目标字符串与所述各字符串的长度中的最大值和最小值;计算减去所述编辑距离后的所述最大值与所述最小值的比值,基于该比值表征所述目标字符串与所述各字符串的相似度;或者计算所述最大值与加上所述编辑距离后的所述最小值的比值,基于该比值表征所述目标字符串与所述各字符串的相似度。可选的,所述计算模块进一步用于:基于预设的相似度计算公式计算所述目标字符串与所述规范化字符串集合中各字符串的相似度;所述相似度计算公式包括:或其中,x表示目标字符串,|x|表示目标字符的长度;y表示规范化字符串,|y|表示所述规范化字符串的长度;max(|x|,|y|)表示目标字符串与所述规范化字符串的长度中的最大值;min(|x|,|y|)表示表示目标字符串与所述规范化字符串长度中的最小值;ds表示目标字符串与所述规范化字符串的编辑距离;c表示修正参数,为大于或者等于0的常数。可选的,所述查找模块具体用于:判断计算出的所述目标字符串与所述规范化字符串集合中各字符串的相似度是否达到预设的相似度阈值;当所述目标字符串与所述规范化字符串集合中任一字符串的相似度达到预设的相似度阈值时,则确定该字符串为与所述目标字符串对应的规范化字符串。本申请中,在将目标字符串转化为规范化字符串时,通过基于指定的切分长度针对目标字符串进行字符切分,得到第一切分单元集合,在预设的索引列表中查找与所述第一切分单元集合中各切分单元关联的规范化字符串,得到与所述第一切分单元集合对应的规范化字符串集合;然后基于编辑距离计算所述目标字符串与所述规范化字符串集合中各字符串的相似度,并基于计算出的所述相似度在所述规范化字符串集合中查找与所述目标字符串对应的规范化字符串,实现了在数据库中查找与目标字符串关联的规范化字符串时,可以通过索引列表快速查找与该目标字符串关联的规范化字符串集合,并基于编辑距离来计算目标字符串与该规范化字符串集合中各字符串的相似度,然后基于计算得到的相似度在该规范化字符串集合中查找与该目标字符串对应的规范化字符串,从而在查找与目标字符串对应的规范化字符串时,不再需要逐一计算目标字符串与数据库中存储的各规范化字符串的相似度,可以减少计算量,提升规范化字符串的查找效率。附图说明图1是本申请一实施例提供的一种将目标字符串转化为规范化字符串的方法的流程图;图2是本申请一实施例提供的一种将目标字符串转化为规范化字符串的装置的逻辑框图;图3是本申请一实施例提供的承载所述一种将目标字符串转化为规范化字符串的装置的服务端的硬件结构图。具体实施方式在相关技术中,在针对用户输入的诸如地址、公司名等短文本进行规范化时,通常会提供一个存储了规范化文本的数据库,通过分别计算用户提供的短文本与该数据库中各规范化文本之间的相似度,然后基于计算得到的相似度在该数据库查找与用户提供的短文本对应的规范化文本。然而,通过这种方式,通常需要逐一计算用户提供的短文本与该数据库中各规范化文本的相似度,计算量很大,从而造成规范化文本的查找效率不高。有鉴于此,本申请提供一种将目标字符串转化为规范化字符串的方法,在将目标字符串转化为规范化字符串时,通过基于指定的切分长度针对目标字符串进行字符切分,得到第一切分单元集合,在预设的索引列表中查找与所述第一切分单元集合中各切分单元关联的规范化字符串,得到与所述第一切分单元集合对应的规范化字符串集合;然后基于编辑距离计算所述目标字符串与所述规范化字符串集合中各字符串的相似度,并基于计算出的所述相似度在所述规范化字符串集合中查找与所述目标字符串对应的规范化字符串,实现了在数据库中查找与目标字符串关联的规范化字符串时,可以通过索引列表快速查找与该目标字符串关联的规范化字符串集合,并基于编辑距离来计算目标字符串与该规范化字符串集合中各字符串的相似度,然后基于计算 得到的相似度在该规范化字符串集合中查找与该目标字符串对应的规范化字符串,从而在查找与目标字符串对应的规范化字符串时,不再需要逐一计算目标字符串与数据库中存储的各规范化字符串的相似度,可以减少计算量,提升规范化字符串的查找效率。下面通过具体实施例并结合具体的应用场景对本申请进行描述。请参考图1,图1是本申请一实施例提供的一种将目标字符串转化为规范化字符串的方法,应用于服务端,所述方法执行以下步骤:步骤101,基于指定的切分长度针对目标字符串进行遍历切分,得到第一切分单元集合;上述服务端可以包括服务器、服务器集群或者基于服务器集群构建的云平台;上述目标字符串可以包括用户输入的不规范的短文本。例如,以电子商务的应用场景为例,上述服务端可以是电子商务提供商的云平台,上述目标字符串可以包括用户输入的地址、公司名等不规范的短文本,该云平台可以采集用户输入的地址、公司名等短文本,并在云端对用户输入的短文本进行规范化处理。在本例中,服务端在采集到用户输入的目标字符串时,可以基于指定的切分长度对该目标字符串进行遍历切分,得到若干切分单元。其中,上述指定的切分长度,可以由用户根据实际的业务需求进行设定;上述遍历切分,是指在对字符串进行切分时,逐个字符遍历字符串,按照字符顺序对字符串进行字符切分,当切分得到一个切分单元后,将切分位置右移一个字符继续进行切分,直到切分完成,从而使得切分得到的切分单元能够涵盖该字符串中所有字符的组合。例如,以上述目标字符串为用户输入的地址短文本“支付宝公司”为例,假设用户设定的切分长度为3,那么基于该切分长度对用户输入的上述短文本“支付宝公司”进行遍历切分后,可以得到“支付宝”“付宝公”“宝公司”等三个切分单元。当服务端针对目标字符串进行遍历切分后,服务端可以基于切分得到的 所有切分单元生成第一切分单元集合。其中,该第一切分单元集合包括对目标字符串进行字符切分后得到的切分单元,该第一切分单元集合中存储的切分单元的数量与服务端针对目标字符串进行字符切分得到的切分单元的数量一致。步骤102,在预设的索引列表中查找与所述第一切分单元集合中各切分单元关联的规范化字符串,得到与所述第一切分单元集合对应的规范化字符串集合;所述索引列表包括针对规范化字符串进行遍历切分得到的切分单元、以及所述切分单元关联的规范化字符串;在本例中,服务端可以在本地预先提供一个存储了规范化字符串的数据库。例如,以上述目标字符串为用户输入的公司名为例,该数据库可以是一个存储了规范化的公司名称(即公司名称的全称)的黄页数据库。在初始状态下,服务端也可以基于指定的切分长度针对该数据库中存储的规范化字符串进行遍历切分,得到若干切分单元。其中,服务端在针对数据库中存储的规范化字符串进行遍历切分时,所使用的切分长度,以及具体的切分方式,与服务端针对上述目标字符串进行遍历切分时的切分长度保持相同。当服务端针对数据库中存储的规范化字符串进行遍历切分后,服务端可以基于切分得到的切分单元生成第二切分单元集合。其中,该第二切分单元集合包括对数据库中存储的规范化字符串进行遍历切分后得到的切分单元。例如,以上述数据库为黄页数据库为例,服务端可以针对该数据库中存储的规范化的公司名称逐一进行遍历切分,然后基于遍历切分后得到的切分单元生成上述第二切分单元集合。当服务端对数据库中存储的规范化字符串切分完成后,服务端可以统计第二切分单元集合中每一个切分单元在数据库所关联的规范化字符串,以及所关联的规范化字符串的数量。其中,服务端在数据库中统计关联的规范化字符串时,可以遍历第二切 分单元集合,从第二切分单元集合中按顺序读取切分单元,然后将读取到的切分单元与数据库中存储的规范化字符串依次进行匹配。当在数据库中任意一个规范化字符串中匹配到读取到的切分单元时,那么服务端可以认为该切分单元与该规范化字符串存在关联关系。当读取到的该切分单元与数据库中存储的所有规范化字符串全部匹配完成后,服务端可以统计通过匹配确定出的与该切分单元存在关联关系的规范化字符串,以及与该切分单元存在关联关系的规范化字符串的具体数量。例如,以上述数据库为黄页数据库为例,假设该数据库中存储了支付宝公司的规范化公司名称“支付宝网络技术有限公司”,服务端在按照指定的切分长度为3,针对该规范化的公司名称进行字符切分后,可以得到“支付宝”、“付宝网”、“宝网络”、“网络技”、“络技术”、“技术有”、“有限公”以及“限公司”等8个切分单元。服务端在确定该8个切分单元在数据库中所关联的规范化的公司名称时,可以依次读取这8个切分单元,与数据库中存储的规范化的公司名称逐一进行匹配;比如,假设用户读取的切分单元为“网络技”,如果数据库中当前还存储了“阿里巴巴网络技术有限公司”这一规范化的公司名称,服务端在将切分单元“网络技”与“阿里巴巴网络技术有限公司”这一规范化的公司名称进行匹配时,由于该公司名称中包含“网络技”这一切分单元,在该公司名称中能够匹配到“网络技”这一切分单元,在这种情况下,服务端可以确定“网络技”这一切分单元与“阿里巴巴网络技术有限公司”存在关联关系。当“网络技”这一切分单元与数据库中所有规范化的公司名称均匹配完成后,服务端可以记录数据库中与该切分单元存在关联性的规范化的公司名称的id,并统计与该切分单元存在关联关系的规范化公司名称的数量。在本例中,当服务端通过上述方式,统计出第二切分单元集合中每一个切分单元在数据库中关联的规范化字符串,以及关联的规范化字符串的数量后,服务端可以基于统计出的信息,针对第二切分单元集合中每一个切分单元生成一个对应的索引表项,然后基于生成的索引表项来创建索引列表。上述索引表项用于对切分单元进行快速查找。该索引表项的基本结构可以包括切分单元字段、关联的规范化字符串字段,以及关联的规范化字符串数量字段等三个字段。其中,上述切分单元字段用于记录切分单元;上述关联的规范化字符串字段用于记录统计出的与切分单元字段记录的切分单元存在关联关系的规范化字符串,上述关联的规范化字符串数量字段用于记录统计出的与切分单元字段记录的切分单元存在关联关系的规范化字符串的数量。例如,以上述字符串为公司名称,上述数据库为黄页数据库为例,假设切分单元“支付宝”在数据库中仅关联一个规范化的公司名称“支付宝网络技术有限公司”,该规范化的公司名称“支付宝网络技术有限公司”的id为120,那么该切分单元生成的索引列表可以如下表所示:切分单元关联的公司名称关联的公司名称数量支付宝1201当服务端基于上述基本结构为第二切分单元集合中的每一个切分单元分别生成了对应的索引表项后,服务端可以基于为第二切分单元集合中所有切分单元生成的索引表项,来创建索引列表。其中,该索引列表由为第二切分单元集合中所有切分单元生成的索引表项组成。在本例中,当索引列表创建完成后,后续服务端针对上述目标字符串进行字符切分,生成上述第一切分单元集合后,服务端可以遍历第一切分单元集合,将第一切分单元集合中的切分单元与上述索引列表中的索引表项中的切分单元依次进行匹配,然后提取匹配到的索引表项中记录的规范化字符串,为目标字符串生成对应的规范化字符串集合。此时,该规范化字符串集合中的规范化字符串,即为最终确定的可以查找到与上述目标字符串对应的规范化字符串的查找范围,其中,需要指出的是,在实际应用中,上述索引列表中包含的索引表项的数量可能会非常巨大(比如对于黄页数据库来说,存储的规范化的公司名称可能达到千万的数量级),在这种情况下,服务端在将第一切分单元集合 中的切分单元在上述索引列表中进行匹配时,如果将第一切分单元集合中的切分单元与上述索引列表中的索引表项中的切分单元逐一进行匹配,可能会造成匹配时长过长的问题。因此,为了降低匹配时长,避免将第一切分单元集合中的切分单元与上述索引表项中的切分单元逐一进行匹配,上述索引列表在创建完成后,服务端还可以对上述索引列表中的索引表项进行数量控制,对上述索引列表中部分索引表项执行删除。在示出的一种实施方式中,服务端可以预先设定一个第一阈值,其中该第一阈值的具体取值可以根据实际需求进行设定;比如1000。当在创建完成上述索引列表后,服务端可以以该列表中的“关联的规范化字符串的数量”字段为基准进行排序,其中,服务端在进行排序时,可以是从大到小排序,也可以是从小到大排序,在实际应用中不进行特别限定。当排序完成后,此时该索引列表中的索引表项将按照记录的关联的规范化字符串的数量从大到小,或者从小到大排序,此时服务端可以基于该排序,将该索引列表中记录的关联的规范化字符串的数量大于上述第一阈值的索引表项删除。可见,通过这种方式,可以有效控制索引列表中索引表项中的数量,当服务端在将第一切分单元集合中的切分单元与索引列表中的索引表项中的切分单元进行匹配时,可以只针对列表中关联的规范化字符串的数量小于第一阈值的部分索引表项中的切分单元进行匹配,从而可以在不影响匹配结果的情况下,尽可能的缩短匹配时长。例如,假设上述数据库为黄页数据库,用户输入的目标字符串为“支付宝公司”,上述第一阈值为1000。服务端在针对该数据库中存储的一条规范化的公司名称“支付宝网络技术有限公司”进行字符切分后,统计出的各切分单元所关联的公司名称的数量分别为:支付宝:1;付宝网:1;宝网络:5;网络技:1819;络技术:2120;技术有:6851;术有限:7654;有限公:9315;限公司:9968。服务端可以将关联的公司名称的数量超过1000的切分单元“网络技”、“络技术”、“技术有”、“术有限”、“有限公”以及“限公司”的索引表项从索引列表中删除,只保留切分单元“支付宝”、“付宝网”以及“宝网络”的索引表项。服务端在从第一切分单元集合中读取切分单元,在索引列表中进行匹配时,虽然索引列表仅保留了切分单元“支付宝”、“付宝网”以及“宝网络”的索引表项,但切分单元“支付宝”、“付宝网”以及“宝网络”所关联的规范化的公司名称中包含“支付宝网络技术有限公司”这一规范化的公司名称。因此,服务端通过以上匹配过程最终确定的规范化字符串集合中,仍然会包含“支付宝网络技术有限公司”这一规范化的公司名称。可见,通过这种方式,不仅可以提升匹配速度,而且并不影响匹配结果的准确性。当然,在实际应用中,如果数据库中存储的某一规范化字符串的切分单元,在数据库中所关联的规范化字符串的数量均大于上述第一阈值,那么该规范化字符串的切分单元在索引列表中对应的索引表项将会被全部删除,此时该规范化字符串将无法出现在服务端为目标字符串创建的规范化字符串集合中。在这种情况下,如果该规范化字符串恰巧为与用户输入的目标字符串对应的规范化字符串,那么就可能会导致无法在规范化字符串集合中查找到与上述目标字符串对应的规范化字符串,或者查找到与该目标字符串对应的规范化字符串不准确的问题。在示出的一种实施方式中,为了避免以上情况发生,如果数据库中存储的某一规范化字符串的切分单元,在索引列表中对应的索引表项均被删除时,服务端可以将该切分单元所对应的索引表项中,记录的关联的规范化字符串的数量最小的索引表项,重新添加至所述索引列表中。通过这种方式,可以在某一规范化字符串的切分单元,在数据库中所关联的规范化字符串的数量均大于上述第一阈值的情况下,确保该规范化字符串的切分单元中,至少有一个切分单元所对应的索引表项仍然能够保留在索 引列表中,从而可以确保该规范化字符串最终出现在服务端为目标字符串创建的规范化字符串集合中。在本例中,服务端在将第一切分单元集合中的切分单元与上述索引列表中的索引表项中的切分单元依次进行匹配时,可以遍历第一切分单元集合,将第一切分单元集合中的切分单元与上述索引表项中的切分单元依次进行匹配。当第一切分单元中的切分单元与索引列表中任一索引表项记录的切分单元匹配时,服务端则可以获取该索引表项。当第一切分单元集合中的切分单元均在上述索引列表中匹配完成时,服务端可以提取获取到的索引表项中记录的规范化字符串,然后基于提取到的规范化字符串来为目标字符串生成对应的规范化字符串集合。此时,该规范化字符串集合中的规范化字符串,即为最终确定的可以查找到与上述目标字符串对应的规范化字符串的查找范围,后续服务端可以分别计算目标字符串与该规范化字符串集合中各字符串的相似度,然后基于相似度来确定与目标字符关联的规划化字符串。其中,需要说明的是,服务端在提取获取到的索引表项中记录的规范化字符串时,除了可以默认提取所有获取到的索引表项中记录的规范化字符串,也可以只提取获取到的索引表项中部分索引表项记录的规范化字符串。在示出的一种实施方式中,服务端可以预设一个第二阈值;其中,该第二阈值可以低于第一阈值。例如,第一阈值为1000时,该第二阈值可以设置为100。服务端在提取获取到的索引表项中记录的规范化字符串时,可以统计获取到的索引表项中记录的关联的规范化字符串的数量低于第二阈值的索引表项,然后仅提取统计出的这些索引表项中记录的规范化字符串。例如,假设上述数据库为黄页数据库,用户输入的目标字符串为“支付宝公司”,上述第二阈值为100,服务端获取到的索引表项如下表所示:服务端在提取获取到的索引表项中记录的规范化字符串时,可以统计上述索引表项中记录的关联的规范化字符串的数量低于100的索引表项,然后仅提取上表中记录的关联的公司名称的数量小于100的切分单元“支付宝”、“付宝网”、“宝网络”的索引表项中记录的关联的公司名称。通过这种方式,服务端可以对规范化字符串集合中的字符串的数量进行控制,从而可以缩小与上述目标字符串对应的规范化字符串的查找范围。步骤103,计算所述目标字符串与所述规范化字符串集合中各字符串的相似度;在本例中,当服务端基于提取到的规范化字符串,为目标字符串生成了对应的规范化字符串集合后,服务端可以计算目标字符串与该规范化字符串集合中各字符串之间的相似度。在示出的一种实施方式中,服务端可以基于编辑距离来计算目标字符串与该规范化字符串集合中各字符串之间的相似度。服务端在计算目标字符串和规范化字符串集合中各字符串的编辑距离时,可以统计将目标字符串转换规范化字符串集合中各字符串时的编辑次数,然后将统计出的编辑次数作为目标字符串转换规范化字符串集合中各字符串的编辑距离。其中,上述编辑操作通常可以包括增加,删除,替换以及换位等操作。例如,在实现时,上述编辑距离可以采用通用的levenshtein距离,也可以采用damerau–levenshtein距离。通用的levenshtein距离通常只统计增加,删除,替换等编辑操作的次数,因此服务端采用通用的levenshtein距离时,可以统计将目标字符串通过 增加一个字符,删除一个字符以及替换一个字符转换为规范化字符串集合中各字符串时的编辑次数,然后将该编辑次数设置为目标字符串与规范化字符串集合中各字符串之间的编辑距离。damerau–levenshtein距离通常需要统计增加,删除,替换以及换位等编辑操作的次数,因此服务端采用damerau–levenshtein距离时,可以统计将目标字符串通过增加一个字符,删除一个字符、替换一个字符以及换位一个字符转换为规范化字符串集合中各字符串时的编辑次数,然后将该编辑次数设置为目标字符串与规范化字符串集合中各字符串之间的编辑距离。在本例中,当服务端计算出目标字符串与规范化字符串集合中各字符串的编辑距离后,可以基于计算出的编辑距离计算目标字符串与规范化字符串集合中各字符串的相似度。其中,由于目标字符串与规范化字符串集合中各字符串的字符串长度可能存在一定的差异,而字符串的长度差异可能会导致相似度的计算结果不准确。因此,为了提升相似度计算的准确度,服务端在基于编辑距离计算目标字符串与该规范化字符串集合中各字符串之间的相似度时,可以基于目标字符串与规范化字符串集合中各字符串的编辑距离,对目标字符串和规范化字符串集合中各字符串的长度进行适配,然后基于适配后的目标字符串以及规范化字符串集合中各字符串的长度计算相似度,从而在针对长度适配后的目标字符串和规范化字符串集合中各字符串进行相似度计算时,可以最大程度的降低字符串的长度差异对相似度计算结果的影响,提升相似度计算的准确度。在示出的一种实施方式中,服务端在基于计算出的编辑距离,对目标字符串和规范化字符串集合中各字符串的长度进行适配时,可以计算目标字符串和规范化字符串集合中各字符串的长度中的最大值和最小值,然后服务端可以将该最大值减去计算出的编辑距离,或者将该最小值加上计算出的编辑距离,来缩小目标字符串和规范化字符串集合中各字符串之间的长度差异, 从而达到对目标字符串和规范化字符串集合中各字符串的长度进行适配的目的。例如,假设目标字符串为abcd,规范化字符串集合中各字符串为afcdeg,目标字符串的长度为4,规范化字符串集合中各字符串的长度为6,二者的编辑距离为3(一次替换编辑,两次新增编辑)。服务端在对目标字符串和规范化字符串集合中各字符串的长度进行适配时,可以将目标字符串的长度4加上编辑距离3,适配结束后,目标字符串的适配长度为7,与规范化字符串集合中各字符串的长度差异缩小。或者,服务端在对目标字符串和规范化字符串集合中各字符串的长度进行适配时,可以将规范化字符串集合中各字符串的长度6减去编辑距离3,适配结束后,规范化字符串集合中各字符串的适配长度为3,与规范化字符串集合中各字符串的长度差异缩小。当然,在实际应用中,服务端在基于编辑距离对目标字符串和规范化字符串集合中各字符串的长度进行适配时,除了通过将目标字符串和规范化字符串集合中各字符串的长度中的最大值减去二者的编辑距离,或者将目标字符串和规范化字符串集合中各字符串的长度中的最小值加上二者的编辑距离以外,也可以有其他的实现方式,在本实施例不再一一列举。在本例中,当服务端对目标字符串的长度和规范化字符串集合中各字符串的长度进行适配完成后,此时服务端可以基于适配完成后的目标字符串以及规范化字符串集合中各字符串的长度计算相似度。在示出的一种实施方式中,目标字符串以及规范化字符串集合中各字符串的长度适配完成后,服务端可以计算适配完成后的目标字符串以及规范化字符串集合中各字符串的长度中的最小值与最大值之间的比值,此时该比值为介于0至1之间的一个数值,因此服务端可以基于该比值来表征目标字符串以及规范化字符串集合中各字符串。一方面,如果服务端通过将目标字符串和规范化字符串集合中各字符串中长度的最大值减去二者的编辑距离,对目标字符串和规范化字符串集合中各字符串的长度进行适配,那么服务端在计算二者的相似度时,可以计算减 去编辑距离后的最大值与最小值之间的比值,然后通过该比值来表征二者的相似度。另一方面,如果服务端通过将目标字符串和规范化字符串集合中各字符串中长度的最小值加上二者的编辑距离,对目标字符串和规范化字符串集合中各字符串的长度进行适配,那么服务端在计算二者的相似度时,可以计算最大值与加上了编辑距离的最小值之间的比值,然后通过该比值来表征二者的相似度。基于此,假设目标字符串为x,规范化字符串集合中各字符串长度为y,目标字符串x的长度为|x|,规范化字符串集合中各字符串的长度为|y|,二者的编辑距离为ds。如果服务端通过将|x|和|y|中的最大值减去ds,对|x|和|y|进行适配,那么服务端可以通过如下公式来计算目标字符串x与规范化字符串集合中各字符串y之间的相似度:如果服务端通过将|x|和|y|中的最小值加上ds,对|x|和|y|进行适配,那么服务端可以通过如下公式来计算目标字符串x与规范化字符串集合中各字符串y之间的相似度:上述两个公式中,s表示目标字符串x与规范化字符串集合中各字符串y之间的相似度。max(|x|,|y|)表示目标字符串与规范化字符串集合中各字符串的长度中的最大值;min(|x|,|y|)表示目标字符串与规范化字符串集合中各字符串的长度中的最小值。c表示在公式中引入的修正参数,该修正参数可以是一个大于或者等于0的常数(即上述公式可以引入c值,也可以不引入c值),通过在以上公式中引入上述修正参数可以对上述公式的计算结果进行修正。其中,上述修正参数的具体取值可以是由用户根据实际的需求设定的工 程经验值,在本公开中不进行特别限定;例如,在实现时,上述修正参数可以是用户基于平滑法得到的平滑参数,通过在上述公式中引入平滑参数,可以对上述公式的计算结果进行修正,以降低上述公式计算结果的误差。在以上公式中,由于编辑距离对目标文件和规范化字符串集合中各字符串的长度进行了适配,因此在针对长度适配后的目标字符串和规范化字符串集合中各字符串进行相似度计算时,可以最大程度的降低字符串的长度差异对相似度计算结果的影响,提升相似度计算的准确度。例如,假设目标字符串为“支付宝公司”,规范化字符串集合中的一规范化字符串为“支付宝网络技术有限公司”,二者之间的编辑距离为6(新增6个字符,编辑6次),目标字符串的长度为5,规范化字符串的长度为11,通过上述公式计算得到的相似度为或者(以c值为0为例)。可见,通过上述公式计算出的相似度有效的排除了目标字符串与规范化字符串集合中的字符串的长度差异对相似度造成的影响。当然,基于编辑距离计算目标字符串与规范化字符串集合中的字符串的相似度,除了以上示出的计算方法以外,也可以有其它方式。例如,在示出的一种计算方法中,可以通过如下公式来计算二者的相似度:其中,上述公式中,s表示相似度;ds表示编辑距离;l表示字符串长度。当通过上述公式来计算目标字符串x与规范化字符串集合中的字符串y的相似度时,上述l的取值根据实际的需求可以是min(|x|,|y|)、max(|x|,|y|)或者|x|+|y|中的任意一个。在步骤104中,基于计算出的所述相似度在所述规范化字符串集合中查找与所述目标字符串对应的规范化字符串。在步骤105中,将该目标字符串转化为查找到的规范化字符串。在本例中,当服务端计算出目标字符串与规范化字符串集合中各字符串之间的相似度后,可以将计算得到的相似度值与预设的相似度阈值进行比较,通过判断计算出的目标字符串与规范化字符串集合中各字符串的相似度是否达到预设的相似度阈值,在规范化字符串集合中查找与目标字符串对应的规范化字符串。如果计算得到的目标字符串与规范化字符串集合中任一字符串的相似度达到该相似度阈值,此时服务端可以判定该字符串为与目标字符串对应的规范化字符串。例如,仍以目标字符串为“支付宝公司”,规范化字符串集合中的一规范化字符串为“支付宝网络技术有限公司”为例,假设相似度阈值为70%,通过上述公式计算出的字符串为“支付宝公司”与字符串“支付宝网络技术有限公司”的相似度为1,大于相似度阈值,因此可以服务器可以将“支付宝网络技术有限公司”确定为字符串“支付宝公司”的规范化字符串。其中,需要指出的是,上述相似度阈值可以由用户根据实际的需求进行设定;例如,在实现时,该相似度阈值可以是一个工程经验值,工程人员可以对大量字符串的进行人工判定是否相同,然后对人工判定的结果进行分析,来设置上述相似度阈值;或者也可以将人工判定的结果作为数据分析样本,由服务端进行统计分析来设置上述相似度阈值。当然,在实际应用中,当规范化字符串集合中存在多个与目标字符串的相似度达到相似度阈值的字符串,服务端可以将该多个字符串均确定为与该目标字符串对应的规范化字符串,然后将该多个字符串向用户输出,由用户人工确认最佳的规范化字符串。在本例中,当服务端基于计算出的相似度在规范化字符串集合中查找到与目标字符串对应的规范化字符串后,可以将该目标字符串转发为查找到的规范化字符串进行使用。例如,假设用户输入的公司名称为“支付宝公司”这一不规范的公司名称,服务端按照以上步骤对该公司名称进行规范化,在数据库中查找到与该 公司名称对应的规范化的公司名称“支付宝网络技术有限公司”后,可以在后台将用户输入的该不规范的公司名称“支付宝公司”转化为“支付宝网络技术有限公司”进行存储使用。在以上实施例中,通过基于指定的切分长度针对目标字符串进行遍历切分,得到第一切分单元集合,并在预设的索引列表中查找与所述第一切分单元集合中各切分单元关联的规范化字符串,得到与所述第一切分单元集合对应的规范化字符串集合;然后通过计算目标字符串与规范化字符串集合中各字符串的相似度,并基于计算出的相似度在规范化字符串集合中查找与目标字符串对应的规范化字符串,从而可以将目标字符串转化为查找到的规范化字符串,实现了在将目标字符串转化为规范化字符串时,可以通过索引列表快速确定与该目标字符串关联的规范化字符串集合,并通过计算目标字符串与该规范化字符串集合中各字符串的相似度,在该规范化字符串集合中查找与该目标字符串对应的规范化字符串,使得在将目标字符串转化为规范化字符串时,不再需要逐一计算目标字符串与数据库中存储的各规范化字符串的相似度,从而可以减少计算量,提升规范化字符串的查找效率。与上述方法实施例相对应,本申请还提供了装置的实施例。请参见图2,本申请提出一种将目标字符串转化为规范化字符串的装置20,应用于服务端;其中,请参见图3,作为承载所述规范化字符串的查找装置20的服务端所涉及的硬件架构中,通常包括cpu、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述规范化字符串的查找装置20通常可以理解为加载在内存中的计算机程序,通过cpu运行之后形成的软硬件相结合的逻辑装置,所述装置20包括:第一切分模块201,用于基于指定的切分长度针对目标字符串进行遍历切分,得到第一切分单元集合;获取模块202,用于在预设的索引列表中查找与所述第一切分单元集合中各切分单元关联的规范化字符串,得到与所述第一切分单元集合对应的规范化字符串集合;所述索引列表包括针对规范化字符串进行遍历切分得到的 切分单元、以及所述切分单元关联的规范化字符串;计算模块203,用于计算所述目标字符串与所述规范化字符串集合中各字符串的相似度;查找模块204,用于基于计算出的所述相似度在所述规范化字符串集合中查找与所述目标字符串对应的规范化字符串;转化模块205,用于将该目标字符串转化为查找到的规范化字符串。在本例中,所述装置20还包括:第二切分模块206,用于基于所述指定的切分长度针对数据库中存储的规范化字符串进行遍历切分,得到第二切分单元集合;生成模块207,用于针对所述第二切分单元集合中各切分单元分别生成对应的索引表项;其中,所述索引表项记录的信息包括规范化字符串的各切分单元、以及所述各切分单元在所述数据库中关联的规范化字符串。在本例中,所述索引表项记录的信息还包括所述各切分单元在所述数据库中关联的规范化字符串的数量;所述装置20还包括:排序模块208,用于基于所述数量针对所述索引列表中的索引表项进行排序;删除模块209,用于删除所述索引列表中记录的所述数量大于预设的第一阈值的索引表项。在本例中,所述装置20还包括:添加模块210,用于在任一规范化字符串进行字符切分得到的切分单元,在所述索引列表中对应的索引表项均被删除时,将该切分单元所对应的索引表项中记录的所述数量最小的索引表项添加至所述索引列表中。在本例中,所述获取模块202具体用于:将所述第一切分单元集合中的切分单元在所述索引列表中进行匹配;获取所述第一切分单元集合中的切分单元在所述索引列表中匹配到的索引表项;提取获取到的所述索引表项中记录的所述规范化字符串,生成所述规范化字符串集合;或者,提取获取到的索引表项中记录的所述数量低于预设的第二阈值的索引表项中记录的所述规范化字符串,生成所述规范化字符串集合;其中,所述第二阈值小于所述第一阈值。在本例中,所述计算模块203具体用于:计算所述目标字符串与所述规范化字符串集合中各字符串的编辑距离;计算所述目标字符串与所述各字符串的长度中的最大值和最小值;计算减去所述编辑距离后的所述最大值与所述最小值的比值,基于该比值表征所述目标字符串与所述各字符串的相似度;或者计算所述最大值与加上所述编辑距离后的所述最小值的比值,基于该比值表征所述目标字符串与所述各字符串的相似度。在本例中,所述计算模块203进一步用于:基于预设的相似度计算公式计算所述目标字符串与所述规范化字符串集合中各字符串的相似度;所述相似度计算公式包括:或其中,x表示目标字符串,|x|表示目标字符的长度;y表示规范化字符串,|y|表示所述规范化字符串的长度;max(|x|,|y|)表示目标字符串与所述规范化字符串的长度中的最大值;min(|x|,|y|)表示表示目标字符串与所述规范化字符串长度中的最小值;ds表示目标字符串与所述规范化字符串的编辑距离;c表示修正参数,为大于或者等于0的常数。在本例中,所述查找模块204具体用于:判断计算出的所述目标字符串与所述规范化字符串集合中各字符串的相似度是否达到预设的相似度阈值;当所述目标字符串与所述规范化字符串集合中任一字符串的相似度达到预设的相似度阈值时,则确定该字符串为与所述目标字符串对应的规范化字符串。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1