CN109784308B - 一种地址纠错方法、装置及存储介质 - Google Patents
一种地址纠错方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109784308B CN109784308B CN201910104630.6A CN201910104630A CN109784308B CN 109784308 B CN109784308 B CN 109784308B CN 201910104630 A CN201910104630 A CN 201910104630A CN 109784308 B CN109784308 B CN 109784308B
- Authority
- CN
- China
- Prior art keywords
- address
- characters
- candidate
- corrected
- 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.)
- Active
Links
Images
Landscapes
- Machine Translation (AREA)
Abstract
本发明涉及数据处理技术领域,公开了一种地址纠错方法、装置及存储介质,包括:获取待纠错地址的候选地址集,候选地址集包括多个候选地址;确定各候选地址中每个字符在待纠错地址中的出现位置信息;根据各候选地址中每个字符的出现位置信息,确定各候选地址中与所述待纠错地址匹配的字符的匹配字符数目;确定各候选地址中与所述待纠错地址不匹配的字符的异常字符数目;根据各候选地址对应的匹配字符数目和异常字符数目,确定各候选地址的匹配度;匹配度与候选地址应对应的匹配字符数目正相关,与异常字符数目负相关;选取候选地址集中,与待纠错地址匹配度最高的候选地址,对待纠错地址进行纠错,获得纠错后的地址。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种地址纠错方法、装置及存储介质。
背景技术
目前,在使用OCR(Optical Character Recognition,光学字符识别)技术识别如图片或快递单上的地址信息时,会由于图片或快递单中出现的皱褶、黑边、印记等影响识别结果的因素,会导致识别出的地址信息中可能会出现错字,漏字等情况,因此,还需对通过OCR技术识别出的地址信息进行纠错。然而,如何提升地址纠错的准确度,是一个需要解决的技术问题。
发明内容
本发明实施例提供一种地址纠错方法、装置及存储介质,用于提升地址纠错的准确度。
一方面,本发明实施例中提供了一种地址纠错方法,包括:
获取待纠错地址的候选地址集,所述候选地址集包括多个候选地址;
确定各候选地址中每个字符在待纠错地址中的出现位置信息;
根据各候选地址中每个字符的出现位置信息,分别确定各候选地址中与所述待纠错地址匹配的字符的匹配字符数目;以及
分别确定各候选地址中与所述待纠错地址不匹配的字符的异常字符数目;
根据各候选地址对应的匹配字符数目和异常字符数目,分别确定各候选地址的匹配度;其中,匹配度与候选地址应对应的匹配字符数目正相关,与异常字符数目负相关;
选取所述候选地址集中,候选地址与所述待纠错地址匹配度最高的候选地址,对所述待纠错地址进行纠错,获得纠错后的地址。
另一方面,本发明实施例中提供一种地址纠错装置,包括:
获取单元,用于获取待纠错地址的候选地址集,所述候选地址集包括多个候选地址;
位置确定单元,用于确定各候选地址中每个字符在待纠错地址中的出现位置信息;
匹配字符确定单元,用于根据各候选地址中每个字符的出现位置信息,分别确定各候选地址中与所述待纠错地址匹配的字符的匹配字符数目;以及
异常字符确定单元,用于分别确定各候选地址中与所述待纠错地址不匹配的字符的异常字符数目;
匹配度确定单元,用于根据各候选地址对应的匹配字符数目和异常字符数目,分别确定各候选地址的匹配度;其中,匹配度与候选地址应对应的匹配字符数目正相关,与异常字符数目负相关;
选取单元,用于选取所述候选地址集中,候选地址与所述待纠错地址匹配度最高的候选地址,对所述待纠错地址进行纠错,获得纠错后的地址。
另一方面,本发明实施例中提供一种计算机装置,包括至少一个处理器、以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行如本发明实施例中的地址纠错方法的步骤。
另一方面,本发明实施例中提供一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如本发明实施例中的地址纠错方法的步骤。
本发明实施例中的地址纠错方法,在获取到待纠错地址的候选地址集之后,针对候选地址集中的每个候选地址,按照以下方式获得各候选地址与待纠错地址的匹配度:即确定本候选地址中每个字符在待纠错地址中的出现位置信息,然后根据每个字符的出现位置信息,确定该候选地址中与所述待纠错地址匹配的字符的匹配字符数目,以及确定该候选地址中与所述待纠错地址不匹配的字符的异常字符数目,进而根据匹配字符数目和异常字符数目,确定该候选地址的匹配度,其中,匹配度与匹配字符数目正相关,与异常字符数目负相关;然后再选取候选地址集中,候选地址与待纠错地址匹配度最高的候选地址,对待纠错地址进行纠错,获得纠错后的地址,可见,该方法中,相对于现有技术,不需要建立庞大的字典树,也不要进行难度较大的模型训练,所以,具有减小纠错过程中所占用的内存空间,以及降低地址纠错难度的有益效果,且由于该方案中,利用了各候选地址中每个字符在待纠错地址中的出现位置信息,准确的确定出了各候选地址与待纠错地址匹配的字符的匹配字符数目,以及不匹配的字符的异常字符数目,从而根据匹配字符数目和异常字符数目,确定出匹配度最高的候选地址对待纠错地址进行纠错,所以,提高了地址纠错的准确度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明实施例提供的一种应用场景示意图;
图2为本发明实施例提供的地址纠错方法流程图;
图3为本发明实施例提供的匹配字符数目确定方法流程图;
图4为本发明实施例提供的快递单示意图;
图5为本发明实施例提供一种地址纠错装置示意图;
图6为本发明实施例提供另一种地址纠错装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明技术方案保护的范围。
下面对本发明实施例中涉及的部分概念进行介绍。
OCR技术:是通过扫描等光学输入方式将各种票据、报刊、书籍、文稿及其它印刷品的文字转化为图像信息,再利用文字识别技术将图像信息转化为可以使用的计算机输入技术。
终端设备:可以安装各类应用程序,并且能够将已安装的应用程序中提供的对象进行显示的设备,该电子设备可以是移动的,也可以是固定的。例如,手机、平板电脑、各类可穿戴设备、车载设备、个人数字助理(personal digital assistant,PDA)或其它能够实现上述功能的电子设备等。
在具体实践过程中,本发明的发明人发现,现有技术中主要采用两种方式对地址进行纠错,一种是基于统计的语言模型算法进行地址纠错;另一种是基于字典树的方式进行地址纠错。然而,基于统计的语言模型算法进行地址纠错的方式中,由于参数空间过大,条件概率的可能性太多,无法估量,进而增加了训练模型的难度,即算法实现难度较大。此外,于统计的语言模型算法数据稀疏严重,对于非常多词对的组合,在语料库中都没有出现,依据最大似然估计得出的概率会是零,导致最终的纠错效果不好,即纠错准确度。而基于字典树的纠错方式,缺点之一就是构建地址数据的字典树太庞大,占用空间过多,查询结果极大依赖字典树的完整性,此外,对于特殊的待纠错地址信息,比如:缺字、漏字、前缀重复等,此方法无法很好的通过遍历字典树进行纠正,因此,基于字典树的方式进行地址纠错方式,也存在地址纠错的准确度低的问题。
基于此,本发明实施例提供一种地址纠错方法,该方法在获取到待纠错地址的候选地址集之后,针对候选地址集中的每个候选地址,按照以下方式获得各候选地址与待纠错地址的匹配度:即确定本候选地址中每个字符在待纠错地址中的出现位置信息,然后根据每个字符的出现位置信息,确定该候选地址中与所述待纠错地址匹配的字符的匹配字符数目,以及确定该候选地址中与所述待纠错地址不匹配的字符的异常字符数目,进而根据匹配字符数目和异常字符数目,确定该候选地址的匹配度,其中,匹配度与匹配字符数目正相关,与异常字符数目负相关;然后再选取候选地址集中,候选地址与待纠错地址匹配度最高的候选地址,对待纠错地址进行纠错,获得纠错后的地址,可见,该方法中,相对于现有技术,不需要建立庞大的字典树,也不要进行难度较大的模型训练,所以,具有减小纠错过程中所占用的内存空间,以及降低地址纠错难度的有益效果,且由于该方案中,利用了各候选地址中每个字符在待纠错地址中的出现位置信息,准确的确定出了各候选地址与待纠错地址匹配的字符的匹配字符数目,以及不匹配的字符的异常字符数目,从而根据匹配字符数目和异常字符数目,确定匹配度的候选地址对待纠错地址进行纠错,所以,提高了地址纠错的准确度。
进一步的,该方法中的候选地址是通过对待纠错地址分割获得的多个词,与预设的多级地址缓存表中的各级地址进行比较,确定多个词对应正确的多级地址之后,将多级地址中的每级地址的多种不同命名,按照行政区域地址的组成规则,针对多级地址中的每级地址的多种不同命名进行组合得到的,以便于后续能够从多个候选地址中筛选出与待纠错地址的原文内容更加匹配的候选地址,对待纠错地址进行纠错,对于特殊的待纠错地址信息,比如:缺字、漏字、前缀重复等效果显著。所以,在实现提升地址纠错准确度的同时,还提升还原待纠错地址的原文准确内容。
进一步的,由于预设的多级地址缓存表中除了包括一级地址缓存表、二级地址缓存表、以及三级地址缓存表中的地址,还包括更详细的地址信息的四级地址缓存表,更详细的地址信息如小区名称,建筑物的名称等等,所以,提升了地址纠错的深度,而不仅仅限于现有的只能纠错到行政区划分的一级至三级地址。
本发明实施例中的地址纠错方法可以应用于如图1所示的应用场景,该应用场景中包括有快递单10,扫码枪11,终端设备12以及服务器13,其中,快递单10上有地址信息,服务器13可以是一台服务器,也可以是若干台服务器组成的服务器集群或云计算中心,图1所示的应用场景中,服务器13为若干台服务器组成的服务器集群。扫码枪11与终端设备12电连接(也可通过网络连接),终端设备12与服务器13通过网络连接,网络可以为局域网、广域网或移动互联网等通信网络中的任意一种。
在该应用场景中,扫码枪11扫描快递单10中的地址信息后,可以通过OCR技术识别扫描快递单10中的地址信息,从而获得本发明实施例中的待纠错地址,然后,将该待纠错地址传输给终端设备12;扫码枪11也可将扫描获得地址信息传给终端设备12,由终端设备12通过OCR技术识别获得上述待纠错地址。终端设备获得待纠错地址之后,可将待纠错地址发送给服务器13,并由服务器13按照本发明实施例中的地址纠错方法,对该纠错地址进行纠错,即发明实施例中的方法可应用于服务器13中。
当然,在实际应用中,在终端设备12获得待纠错地址之后,若预设的多级地址缓存表存储在服务器13中,则终端设备12可从服务器13中获取多级地址缓存表,并按照本发明实施例中的地址纠错方法,对该纠错地址进行纠错,即本发明实施例中的方法也可应用于终端设备12中。
需要注意的是,上文提及的应用场景仅是为了便于理解本发明的精神和原理而示出,本发明实施例在此方面不受任何限制。相反,本发明实施例可以应用于适用的任何场景。
下面结合图1所示的应用场景,对本发明实施例提供的地址纠错方法进行说明。
如图2所示,本发明实施例中的地址纠错方法,包括:
步骤201:获取待纠错地址。
在本发明实施例中,待纠错地址可以是图片上的地址信息,也可以是快递单上的地址信息,还可以是需要进行地址纠错的其他载体上的地址信息。在此以需要进行地址纠错的为快递单上的地址信息为例,那么,可以通过OCR技术或其他识别技术识别快递单上的地址信息,以获取到待纠错地址。
步骤202:对应多级地址缓存表中的各级地址的行政地址组成规则,将待纠错地址分割为多个分词。
在本发明实施例中,可以根据多级地址缓存表中的各级地址的行政地址组成规则,将待纠错地址分割为多个分词,也可以通过现有的多种分词方法如结巴分词方法等,对待纠错地址按照省、市、区、街道等各级地址的行政区划分(即行政地址组成规则)进行分割,以获得待纠错地址中的多个分词,这多个分词中就包括分割获得的一级地址、二级地址、以及三级地址中的一个或多个。
其中,一级地址为行政区划分中的省、自治区、直辖市;二级地址为行政区划分中省、自治区分为自治州、县、自治县、市;三级地址为行政区划分中的县、自治县分为乡、民族乡、镇,多级地址缓存表为本发明实施例中预先设置的,下文将对其进行详述。
步骤203:将多个分词与多级地址缓存表中对应级别的地址进行比较,并以各级地址之间的关联关系在相邻级别之间进行纠错,以确定多个词对应的多级地址。
在本发明实施例中,考虑到实际应用中,待纠错地址中可能存在缺字、漏字、前缀重复等情况,对应的,待纠错地址经过分割之后,获得的多个分词中就可能存在不完整、或错误、或重复的各级地址的情况,例如,待纠错地址为:浙省杭州我滨江区餐河街道,对该待纠错地址进行分割后得到的分词包括:浙省、杭州、我、滨江区,其中,“浙省”就为因漏字所导致不完整的地址,“我”以及“餐河街道”就为错误的地址。
因此,在本发明实施例中,可以将分割获得的多个分词与预设的多级地址缓存表中对应级别的地址进行比较,并以各级地址之间的关联关系在相邻级别之间进行纠错,以确定分割获得多个分词对应的正确的多级地址,从而提升地址纠错的准确率。
在本发明实施例中,预设的多级地址缓存表包括记录有一级地址的一级地址缓存表,记录有二级地址的二级地址缓存表,记录有三级地址的三级地址缓存表,以及记录有四级地址的四级地址缓存表。其中,各级地址缓存表是通过以下方式获得的:即先获取语料库中收集的地址信息,然后按照行政区划分的规则,从语料库中收集的地址信息中,分别划分出一级地址生成一级地址缓存表,划分出二级地址生成二级地址缓存表,以及划分出三级地址生成三级地址缓存表。
进一步,在本发明实施例中,考虑到地址信息中除了包括按照行政区划分依次填写的一级地址、二级地址、三级地址外,通常还会填写更加详细的地址,如小区名称,或建筑名称,楼栋等信息,若在地址纠错过程中对此类更加详细的地址也进行纠错,能够进一步提升纠错的准确度。
所以,本发明实施例中,将地址信息中除一级地址缓存表、二级地址缓存表、以及三级地址缓存表中包括的地址之外的其他地址,按照其他地址所在的地理位置信息,以及其他地址所属行政区域生成的四级地址缓存表,其他地址如小区名称,建筑物的名称等等,以提升地址纠错的深度,即能够纠错到更新详细的地址信息,而不仅仅限于现有的行政区划分的一级至三级地址。
步骤204:确定多级地址中的每级地址的多种不同命名。
步骤205:按照行政区地址的组成规则,对多级地址中的每级地址的多种不同命名进行组合,得到多个候选地址。
其中,多个候选地址形成候选地址集。
在本发明实施例中,考虑到各级地址具有多种不同的命名,例如四川省又可简称为四川,也可以全称为四川省,成都市可简称为成都,也可全称为成都市,对应的,在待纠错地址中,可能使用各级地址的全称,也可以使用各级地址的简称,还可以全称和简称混合使用,例如,针对四川省成都市锦江区(全称),可称为四川成都锦江(简称),也可称为四川省成都锦江区,四川成都市锦江区等等。
因此,在本发明实施例中,为了在进行地址纠错时,提升还原待纠错地址的原文准确内容,避免强行纠正为统一的地址格式,从而导致的无法还原原文的情况,在本发明实施例中,还可以确定各地址中的每级地址的多种不同命名,然后,按照行政区域地址的组成规则,针对多级地址中的每级地址的多种不同命名进行组合,得到多个候选地址,这样,多个候选地址中就包括各级地址的全称组合、简称组合以及全称和简称混合的组合,以便于后续能够从多个候选地址中筛选出与待纠错地址的原文内容更加匹配的候选地址,对待纠错地址进行纠错。
在本发明实施例中,在获得待纠错地址的候选地址集之后,可以执行以下步骤206至步骤209,以获得候选地址集中的每个候选地址与待纠错地址的匹配度。
步骤206:确定各候选地址中每个字符在待纠错地址中的出现位置信息。
在本发明实施例中,各候选地址中的每个字符在待纠错地址中的出现位置信息,是指各候选地址中每个字符在待纠错地址中出现的位置序号,例如,候选地址中的第一个字符也为待纠错地址中的第一个字符,即在待纠错地址的第一个位置出现,那么,候选地址中的第一个字符的位置序号可以用序号0表示(以序号0作为序号的起始位置,当然,也可以使用序号1作为序号的起始位置),候选地址中的第二个字符为待纠错地址中的第三个字符,即在待纠错地址的第三个位置出现,那么,候选地址中的第二个字符的位置序号可以用序号2表示,若候选地址中的第二个字符为待纠错地址中的第二个字符,即在待纠错地址的第二个位置出现,对应的,该第二个字符的位置序号可以用序号1表示。若候选地址中的第三个字符未在待纠错地址中出现,此时,可以使用特殊序号进行区分,例如使用-1,那么,该第三个字符在待纠错地址出现的位置即为位置序号-1,表示该第三个字符未在待纠错地址中出现,当然还可以其他特殊符合表示,例如用位置序号为空来表示该第三个字符。
步骤207:根据各候选地址中每个字符的出现位置信息,分别确定各候选地址中与待纠错地址匹配的字符的匹配字符数目。
在本发明实施例中,任一个候选地址中与待纠错地址匹配的字符的匹配字符数目,是指出现在相同位置的同字符的字符数目与出现位置不同的相同字符串包括的所有字符数目之和。
出现在相同位置的同字符,是指该字符在其所在的候选地址中的出现位置与在待纠错地址的出现位置相同,例如,候选地址中的字符“浙”在该候选地址的出现位置为0,即第一个出现,在待纠错地址中的出现位置也为0,那么,该字符“浙”即为出现在相同位置的同字符。
出现位置不同的相同字符串,是指该字符串在其所在的候选地址中存在,也在待纠错地址中存在,且该字符串在其所在的候选地址中的出现位置与在待纠错地址中的出现位置不同,例如,候选地址为“浙江省杭州滨江区”,待纠错地址为“浙省杭州我滨江区”,对于候选地址中的字符串“杭州”在待纠错地址中的出现位置为2和3(本发明实施例中均以位置0作为位置的首位),而该字符串在该候选地址中的出现位置为3和4,那么,该字符串即为候选地址中的出现位置不同的相同字符串。
步骤208:确定各候选地址中与待纠错地址不匹配的字符的异常字符数目。
其中,不匹配的字符为除匹配的字符之外的其他字符。
在本发明实施例中,考虑到实际应用中,候选地址中可能存在出现位置与在待纠错地址的出现位置不同的字符,也可能存在未在待纠错地址中出现的字符的情况,因此,在发明实施例中,确定的各候选地址中与待纠错地址不匹配的字符的异常字符数目,包括字符相同但出现位置不同的不匹配字符数目,和\或没有在待纠错地址出现的失踪字符数目,下文将对此进行详细叙述。
步骤209:根据各候选地址对应的匹配字符数目和异常字符数目,分别确定各候选地址的匹配度,匹配度与匹配字符数目正相关,与异常字符数目负相关;
在本发明实施例中,可使用加权求和的方式,对各候选地址的匹配字符数目和异常字符数目进行加权求和,以求取个候选地址的匹配度,其中,匹配字符数目的权重为正数即为正相关,异常字符数目的权重为负数即为负相关,即匹配字符数目越大,异常字符数目越小,候选地址的匹配度越高。
步骤210:选取候选地址集中,候选地址与待纠错地址匹配度最高的候选地址,对待纠错地址进行纠错,获得纠错后的地址。
在本发明实施例中,在求得各候选地址的匹配度之后,可选择匹配度最高的候选地址,对待纠错地址进行纠错,进而获得纠错后的地址。可见,本发明实施例中的方法,相对于现有技术,不需要建立庞大的字典树,也不要进行难度较大的模型训练,所以,具有减小纠错过程中所占用的内存空间,以及降低地址纠错难度的有益效果,且由于该方案中,利用了各候选地址中每个字符在待纠错地址中的出现位置信息,准确的确定出了各候选地址与待纠错地址匹配的字符的匹配字符数目,以及不匹配的字符的异常字符数目,从而根据匹配字符数目和异常字符数目,确定匹配度的候选地址对待纠错地址进行纠错,所以,提高了地址纠错的准确度。
进一步的,该方法中的候选地址是通过对待纠错地址分割获得的多个词,与预设的多级地址缓存表中的各级地址进行比较,确定多个词对应正确的多级地址之后,将多级地址中的每级地址的多种不同命名,按照行政区域地址的组成规则,针对多级地址中的每级地址的多种不同命名进行组合得到的,以便于后续能够从多个候选地址中筛选出与待纠错地址的原文内容更加匹配的候选地址,对待纠错地址进行纠错,对于特殊的待纠错地址信息,比如:缺字、漏字、前缀重复等效果显著。所以,在实现提升地址纠错准确度的同时,还提升还原待纠错地址的原文准确内容。
进一步的,由于预设的多级地址缓存表中除了包括一级地址缓存表、二级地址缓存表、以及三级地址缓存表中的地址,还包括更新详细的地址信息的四级地址缓存表,更新详细的地址信息如小区名称,建筑物的名称等等,所以,提升了地址纠错的深度,而不仅仅限于现有的只能纠错到行政区划分的一级至三级地址。
作为一种可选的方法,在本发明实施例中,上文叙述的步骤207可以按照图3所示的步骤执行,图3所示的步骤包括:
步骤301:根据各候选地址中各个字符的出现位置信息,分别确定各候选地址的各个字符在待纠错地址中的位置序号。
步骤302:确定各候选地址中是否存在包括至少两个位置序号的目标字符;若是,则执行步骤303,否则执行步骤305。
步骤303:分别将该目标字符的每一个位置序号与对应候选地址的其他字符的位置序号,按照各个字符在对应候选地址中的排列顺序进行排序,获得至少两个位置信息队列。
在本发明实施例中,考虑到候选地址集中,可能存在包括在待纠错地址中出现至少两次的目标字符的候选地址,因此,在确定候选地址的各个字符在待纠错地址中的位置序号之后,还可以进一步确定候选地址中是否存在包括至少两个位置序号的目标字符,例如,待纠错地址为"浙江省杭T宾江区长河街道",候选地址集中的一个候选地址为"浙江省杭州市",根据上文叙述的方式可知,该候选地址中各个字符在待纠错地址中的位置序号为:
Location=size=6{
[0]=size=1{[0]=0 //浙 出现在text中下标为0的位置};
[1]=size=2{[0]=1 [1]=6 //江 出现在text中下标为1、6的位置};
[2]=size=1{[0]=2 //省 出现在text中下标为2的位置};
[3]=size=1{[0]=3 //杭 出现在text中下标为3的位置};
[4]=size=0{} //州 没有在text中出现;
[5]=size=0{} //市 没有在text中出现;}
其中,Location表示候选地址在待纠错地址中的位置序号集合,text表示待纠错地址,size表示数目。从上述位置序号集合Location可以看出,候选地址中的“江”在Text即待纠错地址中出现了两次,数目就为2,候选地址中的“州”和“市”没有在Text出现,数目均为0。候选地址中的“浙”、“省”、“杭”在Text中的出现的位置序号依次为0、2、3,因此数目均为1。
由此可确定候选地址中的江为步骤302中的目标字符,即候选地址中的“江”包括两个位置序号分别为1、6,分别将该目标字符中的两个序号与该候选地址的其他字符的位置序号,按照各个字符在候选地址中的排列顺序进行排序,获得两个位置信息队列Perms1和Perms2:
Perms1=size=4{[0]=0;[1]=1;[2]=2;[3]=3}
Perms2=size=4{[0]=0;[1]=6;[2]=2;[3]=3}
其中,Perms1=size=4,表示Perms1中的元素(候选地址字符在待纠错地址出现的位置序号)为4个,分别为0、1、2、3,例如,[0]代表元素0对应的字符在候选地址中的位置序号,即[0]=0表示候选地址中的第一个字符在待纠错地址出现的位置序号为0。
需要说明的是,在实际应用中为了方便计算,在获取位置信息队列Perms1和Perms2时,可暂时不考虑没有在text中出现的字符。
步骤304:从至少两个位置信息队列中,确定出未在待纠错地址出现的失踪字符数目最少的目标位置信息队列。
其中,未出现的字符的在目标位置信息队列的位置序号为特殊序号。
在本发明实施例中,从两个位置信息队列Perms1和Perms2中,确定未在待纠错地址出现的失踪字符数目最少的目标位置信息队列的过程具体包括:
第一步:先计算各位置信息队列中的当前字符之前的损失值neg_prev_loss,以及当前字符之后的损失值neg_cur_loss。
其中,neg_prev_loss的初始值为0,若位置信息队列中当前字符在待纠错地址出现的位置序号小于紧挨该字符之前的字符在待纠错地址中出现的位置序号,则neg_prev_loss加一,那么针对Perms1,由于该Perms1中各字符的出现位置序号依次为0、1、2、3,即Perms1中当前字符为出现的位置序号为1对应的“江”时,该字符的位置序号大于紧挨该字符之前的字符即“浙”的位置序号0,所以,neg_prev_loss不加一,依次类推,neg_prev_loss遍历Perms1中所有字符之后仍为0,表示Perms1中未出现失踪的字符,此时,针对Perms1,可以不用计算neg_cur_loss,neg_cur_loss取值为初始值1。
在实际应用中,为了方便计算,可以设置参数prev,参数上述neg_prev_loss的计算,prev初始值为-1,那么,Perms1中第一个字符“浙”的位置序号与prev进行比较,“浙”的位置序号0大于prev的初始值-1,所以,neg_prev_loss不加一,并更新prev为“浙”的位置序号0,然后由第二个字符“江”的位置序号与更新后的prev的值0进行比较,由于“江”的位置序号1大于更新后的prev的值0,所以,neg_prev_loss不加一,并更新prev为“江”的位置序号1,依次类推,遍历Perms1中所有字符之后neg_prev_loss仍为0。
同理,针对Perms2,遍历Perms2中的所有字符,可知,在位置序号为2对应的字符“省”的位置序号小于紧挨其之前的字符“江”的位置序号6,所以Perms2中的neg_prev_loss的值为1,在本发明实施例中,在计算neg_prev_loss过程中,若存在满足neg_prev_loss加一的条件时,表明候选地址中存在不匹配的字符,此时需要计算neg_cur_loss(初始值为1)。具体到Perms2,在计算neg_cur_loss时,若Perms2中存在位置序号为2对应的字符“省”之后的字符的位置序号小于字符“江”的位置序号6,则neg_cur_loss加一,由于字符“杭”的位置序号小于“江”的位置序号6,所以neg_cur_loss加一后为2。
第二步:由各位置信息队列中的当前字符之前的损失值neg_prev_loss,以及当前字符之后的损失值neg_cur_loss,计算获得各位置信息队列中的未在待纠错地址出现的失踪字符数目。
在本发明实施例中,在获得各位置信息队列中neg_prev_loss以及neg_cur_loss之后,可由以下公式(1)计算获得各位置信息队列中的未在待纠错地址出现的失踪字符数目miss_num:
其中,miss_num初始值为0,针对Perms1,由上文可知,neg_prev_loss为0,neg_cur_loss为1,满足neg_prev_loss≤neg_cur_loss条件,所以miss_num+=neg_prev_loss即为0。
针对Perms1,由上文可知,neg_prev_loss为1,neg_cur_loss为1,满足neg_prev_loss≤neg_cur_loss条件,所以miss_num+=neg_prev_loss即为1。
第三步:确定出未在待纠错地址出现的失踪字符数目最少的目标位置信息队列。其中,由于Perms1中的miss_num为0,Perms2中的miss_num为1,所以,选择Perms1作为候选地址的目标位置信息队列。
在实际应用中,为了方便计算,可以设置参数score1,即分数,来确定出未在待纠错地址出现的失踪字符数目最少的目标位置信息队列,其中,score1的计算公式(2)为:
score1=combination.size()–miss_num公式(2)
其中,combination.size()表示Perms的长度即Perms1中的元素个数,例如上述Perms1和Perms2的combination.size()均为4,那么,针对Perms1的score1=4-0=4;针对Perms2的score1=4-1=3,所以,Perms1的score1大于Perms2的score1,选择Perms1的作为候选地址的目标位置信息队列。
如上文叙述,为了方便计算,在获取位置信息队列Perms1和Perms2时,可暂时不考虑没有在text中出现的字符。因此,在确定目标位置信息队列之后,还需要将没有在text中出现的字符的位置序号添加到目标位置信息队列,在本发明实施例中,为了区分该类没有在text中出现的字符,在目标位置信息队列中,使用特殊序号表示未出现的字符的位置序号,特殊序号如-1,那么候选地址"浙江省杭州市"的目标位置信息队列L(这里用L表示目标位置信息队列)就为:
L=size=6{[0]=0;[1]=1;[2]=2;[3]=3;[4]=-1;[5]=-1}
实际应用中,若确定出的目标位置信息队列中存在候选地址中存在不匹配的字符,例如:L=size=6{[0]=0;[1]=6;[2]=2;[3]=3;[4]=-1;[5]=-1},其中,[1]=6为不匹配的字符,此时,为了便于后续计算,还需要将该不配的字符的位置序号更改为特殊序号,如上文列举的-1,在实际应用中,可以通过以下公式(3)确定出L中的不匹配的字符[1]=6:
其中,i表示候选地址的第i个字符。
在实际应用中,在步骤302中可能存在候选地址中不存在包括至少两个位置序号的目标字符,此时,可执行步骤305:将各个字符的位置序号按照各个字符在候选地址中的排列顺序进行排序,获得目标位置信息队列,同样的,未出现的字符的在目标位置信息队列的位置序号为特殊序号。
步骤306:根据目标位置信息队列,确定匹配字符数目为:位置序号出现在对应排序位置的位置序号总数,与位置序号没有出现在对应排序位置但是为位置序号依次增大的序列中包含的位置序号总数之和。
其中,位置序号出现在对应排序位置的位置序号总数为上文叙述的同字符的字符数目,与位置序号没有出现在对应排序位置但是为位置序号依次增大的序列中包含的位置序号总数之和中包含的位置序号总数为上文叙述的相同字符串包括的所有字符数目之和,下文将对此进行详细叙述。
作为一种可选的方式,在本发明实施例中,若异常字符数目包括:字符相同但出现位置不同的不匹配字符数目,上文叙述的步骤208可以按照以下方式执行:根据目标位置信息队列,确定不匹配字符数目为:位置序号没有出现在对应排序位置的单个位置序号总数。
其中,目标位置信息队列的确定过程可参考上文的叙述。
作为一种可选的方式,在本发明实施例中,若异常字符数目包括:没有在所述待纠错地址出现的失踪字符数目,上文叙述的步骤208可以按照以下方式执行:根据目标位置信息队列,确定失踪字符数目为:位置序号为特殊序号的字符数目。
作为一种可选的方式,在本发明实施例中,若异常字符数目包括:字符相同但出现位置不同的不匹配字符数目以及没有在所述待纠错地址出现的失踪字符数目,则可以根据目标位置信息队列,确定不匹配字符数目为:位置序号没有出现在对应排序位置的单个位置序号总数,以及确定失踪字符数目为:位置序号为特殊序号的字符数目,然后确定该单个位置序号总数与该字符数目之和为异常字符数目。
作为一种可选的方式,在本发明实施例中,还可以在执行步骤210的过程中,即选取候选地址集中,候选地址与待纠错地址匹配度最高的候选地址,对待纠错地址进行纠错后,还可以采用形近字匹配处理方法,进一步对纠错后的地址进行纠错,以进一步提升纠错后的地址的准确度。
下文中,将具体以待纠错地址text为:浙省杭州我滨江区餐河街道南岸晶者花园11幢,候选地址集中包括三个候选地址为例,为叙述方法,分别用S1、S2以及S3表示这三个候选地址,其中,S1为:浙江杭州滨江长河街道南岸晶都;S2为:浙江省杭州滨江长河街道南岸晶都,S3为:浙江省杭州市滨江区长河街道南岸晶都;来对本发明实施例中的地址纠错方法进一步阐述。
需要说明的是,S1、S2以及S3均可按照上述步骤201至步骤205叙述方式获得,在此就不重复叙述了,进一步的,在实际应用中,候选地址集中包括的候选地址不限于上述列举的S1、S2以及S3。
在本发明实施例中,需要分别确定S1、S2以及S3中每个字符在待纠错地址中的出现位置信息,这里用Perms11表示S1的出现位置信息,用Perms22表示S2的出现位置信息,用Perms33表示S3的出现位置信息,其中:
Perms11=size=12{[0]=0;[1]=6;[2]=2;[3]=3;[4]=5;[5]=6;[6]=9;[7]=10;[8]=11;[9]=12;[10]=13;[11]=14;};
Perms22=size=13{[0]=0;[1]=6;[2]=1;[3]=2;[4]=3;[5]=5;[6]=6;[7]=9;[8]=10;[9]=11;[10]=12;[11]=13;[12]=14};
Perms33=size=14{[0]=0;[1]=6;[2]=1;[3]=2;[4]=3;[5]=5;[6]=6;[7]=7;[8]=9;[9]=10;[10]=11;[11]=12;[12]=13;[13]=14};
由于上述S1、S2以及S3中每个字符在待纠错地址中的均出现一次,所以,S1的目标位置信息队列即为将Perms11中不匹配的字符[1]=6的位置序号更换为特殊序号-1,以及如上文叙述,将没有在text中出现的字符使用特殊序号添加到Perms11中对应位置后,形成的数组,这里用L11表示S1的目标位置信息队列,同理,可以使用数组L22表示S2的目标位置信息队列,可以使用数组L33表示S3的目标位置信息队列,其中:
L11=size=14{[0]=0;[1]=-1;[2]=2;[3]=3;[4]=5;[5]=6;[6]=-1;[7]=9;[8]=10;[9]=11;[10]=12;[11]=13;[12]=14;[13]=-1};
L22=size=15{[0]=0;[1]=-1;[2]=1;[3]=2;[4]=3;[5]=5;[6]=6;[7]=-1;[8]=9;[9]=10;[10]=11;[11]=12;[12]=13;[13]=14;[14]=-1};
L33=size=17{[0]=0;[1]=-1;[2]=1;[3]=2;[4]=3;[5]=-1;[6]=5;[7]=6;[8]=7;[9]=-1;[10]=9;[11]=10;[12]=11;[13]=12;[14]=13;[15]=14;[16]=-1};
在本发明实施例中,在获得S1、S2以及S3各自对应的目标位置信息队列之后,可以根据上文叙述的方法,根据S1、S2以及S3各自对应的目标位置信息队列,确定S1、S2以及S3各自对应的匹配字符数目以及异常字符数目,在本发明实施例中,为了方便计算,在确定S1的匹配字符数目以及异常字符数目时,可以设置参数match即上文叙述的匹配字符数目,error即上文叙述的失踪字符数目,missing即上文叙述的字符相同但出现位置不同的不匹配字符数目,即异常字符数目可通过参数missing和error求得。在计算过程中,为了协助求取match、error以及missing,还可以设置参数prev以及last_missing,然后根据上文叙述的方法,遍历S1、S2以及S3各自对应的目标位置信息队列,求取S1、S2以及S3各自对应的匹配字符数目以及异常字符数目,即求取各自对应的match、error以及missing。
具体到S1,首先将S1的目标位置信息队列L11作为输入,然后初始化match=0,error=0,missing=0,last_missing=0,prev=-1,last_missing=-1;再从L11中的第一个元素即第一个字符出现的位置序号进行遍历,并按照以下规则更新上述各参数,以获取到最终的match、error以及missing,其中,规则为:
若当前值(位置序号)小于等于prev,则missing++,以及last_missing++;
否则,match++,error+=skipped(skip等于当前值-prev-1),prev=vi[i],last_missing=0,missing=missing-min(skipped,last_missing)。其中,i为目标位置信息队列中第i个元素。
为方便理解,在目标位置信息队列中各元素响应位置,描述出了对应参数的变化,具体到L11为:
L11=size=14{
[0]=0;//当前值为0,大于prev的值-1,故match=0+1=1;error=0;prev更新为当前值0;last_missing=0;missing=0;
[1]=-1;//当前值为-1,小于prev的值0,故,missing=0+1=1;last_missing=1;
[2]=2;//当前值为2,大于prev的值0,故match=1+1=2;error=0+1(因为i=0和i=2中间skip=2-0-1=1,故error=1);又因为missing=missing-min(skipped,last_missing)=1-min(1,1)=1-1=0;prev更新为当前值2;last_missing=0;
[3]=3;//当前值为3,大于prev的值2,故match=3;error=1;missing=0;prev更新为当前值3;last_missing=0;
[4]=5;//当前值为5,大于prev的值3,故match=4;error=1+1=2(因为i=3和i=4中间skip=5-3-1=1,故error=2);missing=0;prev更新为当前值5;last_missing=0;
[5]=6;//当前值为6,大于prev的值5,故match=5;error=2;missing=0;prev更新为当前值6;last_missing=0;
[6]=-1;//当前值为-1,小于prev的值6,故missing=0+1=1(因为当前值为-1小于0,故missing=1),last_missing=1;
[7]=9;//当前值为9,大于prev的值6,故match=6;error=2+2(因为i=5和i=7中间skip=9–6(prev)-1=2,故error=4);又因为missing=missing-min(skipped,last_missing)=1-min(2,1)=1-1=0,prev更新为当前值9;
[8]=10;//当前值为10,大于prev的值9,故match=7;error=4;missing=0;prev更新为当前值10;last_missing=0;
[9]=11;//当前值为11,大于prev的值10,故match=8;error=4;missing=0;prev更新为当前值11;last_missing=0;
[10]=12;//当前值为12,大于prev的值11,故match=9;error=4;missing=0;prev更新为当前值12;last_missing=0;
[11]=13;//当前值为13,大于prev的值12,故match=10;error=4;missing=0;prev更新为当前值13;last_missing=0;
[12]=14;//当前值为14,大于prev的值13,故match=11;error=4;missing=0;prev更新为当前值14;last_missing=0;
[13]=-1;///当前值为-1,小于prev的值14,故missing=1(因为当前值为-1小于14,故missing=1);last_missing=1;
}
由上述分析可知,根据目标位置信息队列L11,求得match=11;error=4;missing=1;然后根据匹配字符数目即参数match的值,和异常字符数目即参数error以及missing的值,确定候选地址的匹配度,其中,匹配度与匹配字符数目正相关,与异常字符数目负相关。在本发明实施例中,可以具体使用公式(4)来求取候选地址的匹配度:
score 2=match–x*error-y*missing 公式(4)
其中,x与y为人工先验知识调试出的系数,本发明实施例中,x取值0.75,y取值0.5。
那么,将根据目标位置信息队列L11,求得match=11;error=4以及missing=1上述可得到,候选地址S1与待纠错地址text的匹配度为score2=11-0.75*4-0.5*1=7.5。
同理,具体到S2,首先将S2的目标位置信息队列L22作为输入,然后初始化match=0,error=0,missing=0,last_missing=0,prev=-1,last_missing=-1;再从L22中的第一个元素即第一个字符出现的位置序号进行遍历,并按照上文叙述的规则更新上述各参数,以获取到最终的match、error以及missing,其中:
L11=size=15{
[0]=0//当前值为0,大于prev的值-1,故match=0+1=1;error=0;prev更新为当前值0;last_missing=0;missing=0;
[1]=-1//当前值为-1,小于prev的值0,故,missing=0+1=1;last_missing=1;
[2]=1//当前值为1,大于prev的值0,故match=2;error=0;missing=1;prev更新为当前值1;last_missing=0;
[3]=2;//当前值为2,大于prev的值1,故match=3;error=0;missing=1;prev更新为当前值2;last_missing=0;
[4]=3;//当前值为3,大于prev的值2,故match=4;error=0;missing=1;prev更新为当前值3;last_missing=0;
[5]=5;//当前值为5,大于prev的值3,故match=5;error=0+1=1(因为i=4和i=5中间skip=5-3-1=1,故error=1);missing=1;prev更新为当前值5;last_missing=0;
[6]=6;//当前值为6,大于prev的值5,故match=6;error=1;missing=1;prev更新为当前值6;last_missing=0;
[7]=-1;//当前值为-1,小于prev的值6,故missing=1+1=2(因为当前值为-1小于0,故missing=2);last_missing=1;
[8]=9;//当前值为9,大于prev的值6,故match=7;error=1+2=3(因为i=6(prev)和i=8中间skip=9–6(prev)-1=2,故error=3),又因为missing=missing-min(skipped,last_missing)=2-min(2,1)=2-1=1;prev更新为当前值9;last_missing=0;
[9]=10;//当前值为10,大于prev的值9,故match=8;error=3;missing=1;prev更新为当前值10;last_missing=0;
[10]=11;//当前值为11,大于prev的值10,故match=9;error=3;missing=1;prev更新为当前值11;last_missing=0;
[11]=12;//当前值为12,大于prev的值11,故match=10;error=3;missing=1;prev更新为当前值12;last_missing=0;
[12]=13;//当前值为13,大于prev的值12,故match=11;error=3;missing=1;prev更新为当前值13;last_missing=0;
[13]=14;//当前值为14,大于prev的值13,故match=12;error=3;missing=1;prev更新为当前值14;last_missing=0;
[14]=-1//当前值为-1,小于prev的值13,故missing=2(因为当前值为-1小于14,故missing=2,)last_missing=1;
}
由上述分析可知,根据目标位置信息队列L22,求得match=12;error=3;missing=2;然后根据匹配字符数目即参数match的值,和异常字符数目即参数error以及missing的值,由上述公式4,可以得到,候选地址S2与待纠错地址text的匹配度为score2=12-0.75*3-0.5*2=8.75。
同理,具体到S3,首先将S3的目标位置信息队列L33作为输入,然后初始化match=0,error=0,missing=0,last_missing=0,prev=-1,last_missing=-1;再从L22中的第一个元素即第一个字符出现的位置序号进行遍历,并按照上文叙述的规则更新上述各参数,以获取到最终的match、error以及missing,计算过程参照上述目标位置信息队列L11和目标位置信息队列L22,在此就不重复叙述了。
在本发明实施例中,根据目标位置信息队列L33求得地的match=13;error=2;missing=2;然后根据匹配字符数目即参数match的值,和异常字符数目即参数error以及missing的值,由上述公式4,可以得到,候选地址S3与待纠错地址text的匹配度为score2=13-0.75*2-0.5*2=10.5。
由于,候选地址S3与待纠错地址text的匹配度为10.5,大于候选地址S1和S2与待纠错地址text的匹配度,所以,选择候选地址S3,即浙江省杭州市滨江区长河街道南岸晶都,对待纠错地址text,即浙省杭州我滨江区餐河街道南岸晶者花园11幢,进行纠错,以获得纠错后的正确地址:浙江省杭州市滨江区长河街道南岸晶都11幢。
下面以将本发明实施例中的地址纠错方法,应用在快递领域为例,来对本发明实施例中的方法进一步进行介绍,如图4所示,为需要进行地址纠错的快递单,假设该快递单中的正确地址为:黑龙江省大庆市萨尔图区萨尔图街道万达事来登后。
如上文的叙述,第一步:使用OCR技术识别快递单上的地址信息,获得待纠错的快递地址:黑龙江省大庆市萨尔断区萨尔国街道万达事来登后。第二步:将待纠错的快递地址分割成多个分词,使用多级地址缓存表中对应级别的地址对多个分词进行纠正,获得对应的多级地址包括:黑龙江省、大庆市、萨尔断区、萨尔国街道。第三步:确定多级地址中各地址的多种不同称呼:黑龙江省、黑龙江、大庆、大庆市、萨尔断区、萨尔断、萨尔国、萨尔国街道。
第四步:按照行政区地址的组成规则,对多级地址中的每级地址的多种不同命名进行组合,得到多个候选地址,多个候选地址例如:黑龙江大庆市萨尔断区萨尔国街道万达事来登后;黑龙江大庆萨尔断萨尔国万达事来登后;黑龙江省大庆市萨尔断区萨尔国街道万达事来登后;黑龙江省大庆萨尔断区萨尔国街道万达事来登后;黑龙江大庆萨尔断区萨尔国街道万达事来登后等等。
第五步,针对任一个候选地址,确定该候选地址中每个字符在待纠错地址中的出现位置信息,以及根据每个字符的出现位置信息,确定该候选地址中与待纠错地址匹配的字符的匹配字符数目,以及确定该候选地址中与待纠错地址不匹配的字符的异常字符数目。第六步:根据匹配字符数目和异常字符数目,确定各候选地址的匹配度,具体的计算过程可参考上文中的叙述。
第七步:选取候选地址集中,候选地址与待纠错地址匹配度最高的候选地址,对待纠错地址进行纠错,获得纠错后的地址为:黑龙江省大庆市萨尔图区萨尔图街道万达事来登后,其纠错准确率达到了100%。
为了更好的说明本发明实施例中的地址纠错方法的纠错效果,本发明实施例中,还分别采用现有技术中的字典树与基于统计的语音模型算法,分别对待纠错的快递地址:黑龙江省大庆市萨尔断区萨尔国街道万达事来登后进行纠错,上述两种纠错方法纠错结果为:黑龙江省大庆市萨尔图区萨尔国街道万达事来登后,纠错准确率为95%。然而,目前现有技术中的地址纠错方法仅可做到三级地址纠错,可见,相较于现有技术,本发明实施例中的方法不仅可以实现一级地址至三级地址纠错,还可以实现四级地址纠错,并具有较高的纠错准确率。
基于同一发明构思,本发明实施例中提供了一种地址纠错装置,如图5所示,包括:
获取单元50,用于获取待纠错地址的候选地址集,所述候选地址集包括多个候选地址;
位置确定单元51,用于确定各候选地址中每个字符在待纠错地址中的出现位置信息;
匹配字符确定单元52,用于根据各候选地址中每个字符的出现位置信息,分别确定各候选地址中与所述待纠错地址匹配的字符的匹配字符数目;以及
异常字符确定单元53,用于分别确定各候选地址中与所述待纠错地址不匹配的字符的异常字符数目;
匹配度确定单元54,用于根据各候选地址对应的匹配字符数目和异常字符数目,分别确定各候选地址的匹配度;其中,匹配度与候选地址应对应的匹配字符数目正相关,与异常字符数目负相关;
选取单元55,用于选取所述候选地址集中,候选地址与所述待纠错地址匹配度最高的候选地址,对所述待纠错地址进行纠错,获得纠错后的地址。
可选的,匹配字符数目为:出现在相同位置的同字符的字符数目与出现位置不同的相同字符串包括的所有字符数目之和。
可选的,异常字符数目包括:字符相同但出现位置不同的不匹配字符数目,和/或没有在待纠错地址出现的失踪字符数目。
可选的,匹配字符确定单元,还用于:
根据该候选地址的各个字符的出现位置信息,获得该候选地址的目标位置信息队列;目标位置信息队列包括各个字符在待纠错地址中的位置序号,各个字符的位置序号按照各个字符在候选地址中的排列顺序进行排序,未出现的字符的位置序号为特殊序号;
根据目标位置信息队列,确定匹配字符数目为:位置序号出现在对应排序位置的位置序号总数,与位置序号没有出现在对应排序位置但是为位置序号依次增大的序列中包含的位置序号总数之和;
其中,位置序号出现在对应排序位置的位置序号总数为同字符的字符数目,位置序号没有出现在对应排序位置但是为位置序号依次增大的序列中包含的位置序号总数为相同字符串包括的所有字符数目之和。
可选的,异常字符确定单元,还用于:
根据目标位置信息队列,确定不匹配字符数目为:位置序号出现在对应排序位置的单个位置序号总数;和/或
确定失踪字符数目为:位置序号为特殊序号的字符数目。
可选的,匹配字符确定单元,还用于:
根据该候选地址的各个字符的出现位置信息,确定该候选地址中是否存在包括至少两个位置序号的目标字符;
若是,则分别将该目标字符的每一个位置序号与该候选地址的其他字符的位置序号,按照各个字符在候选地址中的排列顺序进行排序,获得至少两个位置信息队列;
从至少两个位置信息队列中,确定未在待纠错地址出现的失踪字符数目最少的目标位置信息队列。
可选的,获取单元还用于:
对应多级地址缓存表中的各级地址的行政地址组成规则,将待纠错地址分割为多个分词;
将多个分词与对应级别的地址进行比较,并以各级地址之间的关联关系在相邻级别之间进行纠错,以确定多个分词对应的多级地址;
确定多级地址中的每级地址的多种不同命名;
按照行政区地址的组成规则,对多级地址中的每级地址的多种不同命名进行组合,得到多个候选地址,多个候选地址形成候选地址集。
可选的,多级地址缓存表包括一级地址缓存表、第二地址缓存表、三级地址缓存表以及四级地址缓存表;
其中,一级地址缓存表、第二地址缓存表、以及三级地址缓存表是将语料库中的地址信息按照行政区划分规则划分后生成的;
四级地址缓存表包括地址信息中除去一级地址缓存表、第二地址缓存表、以及三级地址缓存表中包括的地址之外的其他地址;
其中,其他地址至少包括建筑物的名称。
基于同一发明构思,本发明实施例中提供了一种计算机装置,如图6所示,包括至少一个处理器60、以及至少一个存储器61,其中,存储器61存储有计算机程序,当程序被处理器60执行时,使得处理器60执行如本发明实施例中的地址纠错方法的步骤。
基于同一发明构思,本发明实施例中提供了一种存储介质,存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行如本发明实施例中的地址纠错方法的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种地址纠错方法,其特征在于,包括:
获取待纠错地址的候选地址集,所述候选地址集包括多个候选地址;
确定各候选地址中每个字符在待纠错地址中的出现位置信息;
根据各候选地址中每个字符的出现位置信息,分别确定各候选地址中与所述待纠错地址匹配的字符的匹配字符数目;以及
分别确定各候选地址中与所述待纠错地址不匹配的字符的异常字符数目;
根据各候选地址对应的匹配字符数目和异常字符数目,分别确定各候选地址的匹配度;其中,匹配度与候选地址对应的匹配字符数目正相关,与异常字符数目负相关;
选取所述候选地址集中,候选地址与所述待纠错地址匹配度最高的候选地址,对所述待纠错地址进行纠错,获得纠错后的地址。
2.如权利要求1所述的方法,其特征在于,所述匹配字符数目为:出现在相同位置的同字符的字符数目与出现位置不同的相同字符串包括的所有字符数目之和,其中,所述字符串包括多个字符。
3.如权利要求2所述的方法,其特征在于,所述异常字符数目包括:字符相同但出现位置不同的不匹配字符数目,和/或没有在所述待纠错地址出现的失踪字符数目。
4.如权利要求3所述的方法,其特征在于,所述根据各候选地址中每个字符的出现位置信息,分别确定各候选地址中与所述待纠错地址匹配的字符的匹配字符数目,包括:
根据各候选地址中各个字符的出现位置信息,分别获得各候选地址的目标位置信息队列;各候选地址的目标位置信息队列包括对应候选地址中各个字符在待纠错地址中的位置序号,各个字符的位置序号按照各个字符在对应候选地址中的排列顺序进行排序,未出现的字符的位置序号为特殊序号;
根据各候选地址的目标位置信息队列,分别确定各候选地址的匹配字符数目为:位置序号出现在对应排序位置的位置序号总数,与位置序号没有出现在对应排序位置但是为位置序号依次增大的序列中包含的位置序号总数之和;
其中,位置序号出现在对应排序位置的位置序号总数为所述同字符的字符数目,位置序号没有出现在对应排序位置但是为位置序号依次增大的序列中包含的位置序号总数为所述相同字符串包括的所有字符数目之和。
5.如权利要求4所述的方法,其特征在于,所述分别确定各候选地址中与所述待纠错地址不匹配的字符的异常字符数目,具体包括:
根据各候选地址的目标位置信息队列,分别确定各候选地址中的不匹配字符数目为:位置序号没有出现在对应排序位置的单个位置序号总数;和/或
确定所述失踪字符数目为:位置序号为特殊序号的字符数目。
6.如权利要求4所述的方法,其特征在于,所述根据各候选地址各个字符的出现位置信息,分别获得各候选地址的目标位置信息队列,具体包括:
根据各候选地址的各个字符的出现位置信息,分别确定各候选地址中是否存在包括至少两个位置序号的目标字符;
若是,则分别将所述目标字符的每一个位置序号与对应的候选地址的其他字符的位置序号,按照各个字符在对应的候选地址中的排列顺序进行排序,获得至少两个位置信息队列;
从至少两个位置信息队列中,确定未在待纠错地址出现的失踪字符数目最少的目标位置信息队列。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述获取待纠错地址的候选地址集,包括:
对应多级地址缓存表中的各级地址的行政地址组成规则,将所述待纠错地址分割为多个分词;
将所述多个分词与对应级别的地址进行比较,并以各级地址之间的关联关系在相邻级别之间进行纠错,以确定多个分词对应的多级地址;
确定所述多级地址中的每级地址的多种不同命名;
按照所述行政区地址的组成规则,对所述多级地址中的每级地址的多种不同命名进行组合,得到多个候选地址,所述多个候选地址形成所述候选地址集。
8.如权利要求7所述的方法,其特征在于,所述多级地址缓存表包括一级地址缓存表、第二地址缓存表、三级地址缓存表以及四级地址缓存表;
其中,所述一级地址缓存表、所述第二地址缓存表、以及所述三级地址缓存表是将语料库中的地址信息按照行政区划分规则划分后生成的;
所述四级地址缓存表包括所述地址信息中除去所述一级地址缓存表、所述第二地址缓存表、以及所述三级地址缓存表中包括的地址之外的其他地址;
其中,所述其他地址至少包括建筑物的名称。
9.一种地址纠错装置,其特征在于,包括:
获取单元,用于获取待纠错地址的候选地址集,所述候选地址集包括多个候选地址;
位置确定单元,用于确定各候选地址中每个字符在待纠错地址中的出现位置信息;
匹配字符确定单元,用于根据各候选地址中每个字符的出现位置信息,分别确定各候选地址中与所述待纠错地址匹配的字符的匹配字符数目;以及
异常字符确定单元,用于分别确定各候选地址中与所述待纠错地址不匹配的字符的异常字符数目;
匹配度确定单元,用于根据各候选地址对应的匹配字符数目和异常字符数目,分别确定各候选地址的匹配度;其中,匹配度与候选地址对应的匹配字符数目正相关,与异常字符数目负相关;
选取单元,用于选取所述候选地址集中,候选地址与所述待纠错地址匹配度最高的候选地址,对所述待纠错地址进行纠错,获得纠错后的地址。
10.如权利要求9所述的装置,其特征在于,所述匹配字符数目为:出现在相同位置的同字符的字符数目与出现位置不同的相同字符串包括的所有字符数目之和,其中,所述字符串包括多个字符。
11.如权利要求10所述的装置,其特征在于,所述异常字符数目包括:字符相同但出现位置不同的不匹配字符数目,和/或没有在所述待纠错地址出现的失踪字符数目。
12.如权利要求11所述的装置,其特征在于,所述匹配字符确定单元,具体用于:
根据各候选地址中各个字符的出现位置信息,分别获得各候选地址的目标位置信息队列;各候选地址的目标位置信息队列包括对应候选地址中各个字符在待纠错地址中的位置序号,各个字符的位置序号按照各个字符在对应候选地址中的排列顺序进行排序,未出现的字符的位置序号为特殊序号;
根据各候选地址的目标位置信息队列,分别确定各候选地址的匹配字符数目为:位置序号出现在对应排序位置的位置序号总数,与位置序号没有出现在对应排序位置但是为位置序号依次增大的序列中包含的位置序号总数之和;
其中,位置序号出现在对应排序位置的位置序号总数为所述同字符的字符数目,位置序号没有出现在对应排序位置但是为位置序号依次增大的序列中包含的位置序号总数为所述相同字符串包括的所有字符数目之和。
13.如权利要求12所述的装置,其特征在于,所述异常字符确定单元,具体用于:
根据各候选地址的目标位置信息队列,分别确定各候选地址中的不匹配字符数目为:位置序号没有出现在对应排序位置的单个位置序号总数;和/或
确定所述失踪字符数目为:位置序号为特殊序号的字符数目。
14.一种计算机装置,其特征在于,包括至少一个处理器、以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1~8任一项所述方法的步骤。
15.一种存储介质,其特征在于,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-8任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104630.6A CN109784308B (zh) | 2019-02-01 | 2019-02-01 | 一种地址纠错方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104630.6A CN109784308B (zh) | 2019-02-01 | 2019-02-01 | 一种地址纠错方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109784308A CN109784308A (zh) | 2019-05-21 |
CN109784308B true CN109784308B (zh) | 2020-09-29 |
Family
ID=66504125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910104630.6A Active CN109784308B (zh) | 2019-02-01 | 2019-02-01 | 一种地址纠错方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109784308B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112990804A (zh) * | 2019-12-16 | 2021-06-18 | 菜鸟智能物流控股有限公司 | 数据处理方法和装置、电子设备以及计算机可读存储介质 |
CN111291277A (zh) * | 2020-01-14 | 2020-06-16 | 浙江邦盛科技有限公司 | 一种基于语义识别和高级语言搜索的地址标准化方法 |
CN112084771A (zh) * | 2020-07-22 | 2020-12-15 | 浙江工业大学 | 一种基于地址的单字权重统计方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719128A (zh) * | 2009-12-31 | 2010-06-02 | 浙江工业大学 | 一种基于模糊匹配的中文地理编码确定方法 |
KR101852930B1 (ko) * | 2017-09-27 | 2018-04-27 | (주)와우소프트 | 보안출력물 생성장치 및 보안출력물 판독장치 |
CN109086795A (zh) * | 2018-06-27 | 2018-12-25 | 上海理工大学 | 一种图像误匹配精确剔除方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000148906A (ja) * | 1998-11-10 | 2000-05-30 | Hitachi Ltd | 文書認識装置および郵便区分機 |
CN103927352A (zh) * | 2014-04-10 | 2014-07-16 | 江苏唯实科技有限公司 | 利用知识库海量关联信息的中文名片ocr数据修正系统 |
CN105760360B (zh) * | 2014-12-16 | 2018-09-11 | 高德软件有限公司 | 一种地址纠正方法和装置 |
CN106326233B (zh) * | 2015-06-18 | 2019-10-11 | 菜鸟智能物流控股有限公司 | 地址提示方法及装置 |
CN107025232A (zh) * | 2016-01-29 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 物流系统中地址信息的处理方法及装置 |
US10021266B2 (en) * | 2016-08-19 | 2018-07-10 | Kabushiki Kaisha Toshiba | System and method for automated document translation during transmission |
WO2019165644A1 (zh) * | 2018-03-02 | 2019-09-06 | 福建联迪商用设备有限公司 | 一种地址纠错方法及终端 |
CN108959244B (zh) * | 2018-06-07 | 2022-08-09 | 北京京东尚科信息技术有限公司 | 地址分词的方法和装置 |
CN109033086A (zh) * | 2018-08-03 | 2018-12-18 | 银联数据服务有限公司 | 一种地址解析、匹配的方法及装置 |
-
2019
- 2019-02-01 CN CN201910104630.6A patent/CN109784308B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719128A (zh) * | 2009-12-31 | 2010-06-02 | 浙江工业大学 | 一种基于模糊匹配的中文地理编码确定方法 |
KR101852930B1 (ko) * | 2017-09-27 | 2018-04-27 | (주)와우소프트 | 보안출력물 생성장치 및 보안출력물 판독장치 |
CN109086795A (zh) * | 2018-06-27 | 2018-12-25 | 上海理工大学 | 一种图像误匹配精确剔除方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109784308A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109784308B (zh) | 一种地址纠错方法、装置及存储介质 | |
CN111783419B (zh) | 地址相似度计算方法、装置、设备和存储介质 | |
US11507601B2 (en) | Matching a first collection of strings with a second collection of strings | |
WO2016165538A1 (zh) | 一种地址数据的管理方法和装置 | |
CN108363701B (zh) | 命名实体识别方法及系统 | |
CN102801709A (zh) | 一种钓鱼网站识别系统及方法 | |
CN109145080B (zh) | 一种文本指纹获得方法及装置 | |
CN107046586A (zh) | 一种基于类自然语言特征的算法生成域名检测方法 | |
CN103970733A (zh) | 一种基于图结构的中文新词识别方法 | |
CN108268440A (zh) | 一种未登录词识别方法 | |
CN113065057B (zh) | 一种数据信息真实性校验方法、装置、设备及存储介质 | |
JP2018194919A (ja) | 学習プログラム、学習方法及び学習装置 | |
CN106599227B (zh) | 用于获取基于属性值的对象之间的相似度的方法与装置 | |
US20220374733A1 (en) | Data packet classification method and system based on convolutional neural network | |
CN111008625B (zh) | 一种地址校正方法、装置、设备及存储介质 | |
CN110958244A (zh) | 一种基于深度学习的仿冒域名检测方法及装置 | |
CN109977131A (zh) | 一种房型匹配系统 | |
CN113434708A (zh) | 地址信息检测方法、装置、电子设备和存储介质 | |
CN100440859C (zh) | 一种位图聚合的递推流分类方法及其系统 | |
CN108768862B (zh) | 一种多接口路由器地理定位方法 | |
CN113837634A (zh) | 一种基于相似度的行政区划匹配方法及装置 | |
CN112287671A (zh) | 基于simhash的地址解析方法及系统 | |
CN112182313A (zh) | 一种继电保护定值名称匹配方法、系统 | |
Prilepok et al. | Spam detection based on nearest community classifier | |
CN116501897B (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 |