地址纠偏方法、装置、电子设备以及存储介质与流程

文档序号:22929498发布日期:2020-11-13 16:27阅读:288来源:国知局
地址纠偏方法、装置、电子设备以及存储介质与流程

本发明涉及计算机应用领域,尤其涉及一种地址纠偏方法、装置、电子设备以及存储介质。



背景技术:

收件地址是快递运输领域中的关键信息,准确、规范的收件地址能够辅助快递企业完成包裹的定位、分拣和派送操作,有效改善用户服务的质量和效率。

以多数电商平台为例,用户在网购时,填写的收件地址通常包含收件人姓名、收件人电话、收件省、收件城市、收件区县以及收件详细地址。收件人姓名通常由用户手动填写,通常不做真实性校验,并且一般不会直接影响最终的派送效果。收件人电话通常由用户手动填写,属于收件地址中的关键信息,用于在末端派送或发生异常时联络收件人使用。收件省通常由用户通过下拉菜单选择,属于收件地址中的关键信息,直接关乎干线集包地的选择。收件城市通常由用户通过下拉菜单选择,属于收件地址中的关键信息,直接关乎干线目的分拨中心的选择。收件区县通常由用户通过下拉菜单选择,属于收件地址中的关键信息,直接关乎末端派件网点的选择。收件详细地址通常由用户手动填写,属于收件地址中的关键信息,直接关乎快递员派件操作。

然而,在实际操作时,可能存在用户填写错误,或者用户根据下拉菜单选择“其它区”,从而影响派送的情况。

由此,如何实现快递派件地址的纠偏,是本领域技术人员亟待解决的技术问题。



技术实现要素:

本发明为了克服上述相关技术存在的缺陷,提供一种地址纠偏方法、装置、电子设备以及存储介质,进而实现快递派件地址的纠偏。

根据本发明的一个方面,提供一种地址纠偏方法,包括:

获取用户输入的地址信息;

根据一规则库识别所述地址信息的纠偏类型;

根据所述纠偏类型对所述地址信息进行纠偏。

在本发明的一些实施例中,所述地址信息包括多级具有隶属关系的地区信息。

在本发明的一些实施例中,所述获取用户输入的地址包括:

获取用户选择的地址信息;以及

获取用户手动输入的地址信息。

在本发明的一些实施例中,用户选择的地址信息经由按提供多级地区信息分别选择获取;

用户手动输入的地址信息的多级地区信息经由输入文本的解析获取。

在本发明的一些实施例中,所述获取用户输入的地址还包括:

将用户选择的地址信息中的多级地区信息以及用户手动输入的地址信息的多级地区信息转换为具有地区数据类型的地区信息,所述地区类型包括地区编码、当前地区的上一级地区的地区编码、地区名称、地区级别、隶属当前地区的地区列表中的一项或多项,所述隶属当前地区的地区列表中的每一项地区为具有地区数据类型的地区信息。

在本发明的一些实施例中,用户选择的地址信息中的多级地区信息以及用户手动输入的地址信息的多级地区信息通过一总地区列表转换为具有地区数据类型的地区信息,所述总地区列表中的每一项地区为具有地区数据类型的地区信息。

在本发明的一些实施例中,所述规则库为产生式规则库。

在本发明的一些实施例中,所述产生式规则库中各产生式规则的描述符合bnf范式;所述产生式规则库采用四元组g=(∑,v,s,p)形式定义,其中,∑表示终结符集合,v表示非终结符集合,s表示开始符号,p表示产生式规则集合。

在本发明的一些实施例中,所述产生式规则库的终结符集合包括:

表示用户选择的地址信息的选择地区信息原语;

表示经解析的用户手动输入的地址信息的解析地区信息原语;

纠偏类型原语,包括多个纠偏类型;

空数据对象。

在本发明的一些实施例中,所述产生式规则库的产生式规则集合包括:

地址信息赋值规则,用以将所述选择地区信息原语以及解析地区信息原语赋值至结构化地址;

纠偏类型识别规则,用以识别纠偏类型。

在本发明的一些实施例中,所述纠偏类型包括:地区变更纠偏、隶属关系纠偏以及无需纠偏,所述终结符集合还包括:

地区变更映射集合,用于储存发生过变更的地区信息以及变更后的地区信息。

在本发明的一些实施例中,所述纠偏类型识别规则包括:

地区变更纠偏规则,包括地区变更纠偏的判定前提、判定条件和判定结论;

隶属关系纠偏规则,包括隶属关系纠偏的判定前提、判定条件和判定结论。

在本发明的一些实施例中,所述地区变更纠偏的判定前提以及隶属关系纠偏的判定前提包括:所述结构化地址中的选择地区信息与解析地区信息中设定级别的地区相一致。

在本发明的一些实施例中,所述地区变更纠偏的判定条件包括:

所述结构化地址中的解析地区信息中至少一级地区属于所述地区变更映射集合。

在本发明的一些实施例中,所述隶属关系纠偏的判定条件包括:

所述结构化地址中的解析地区信息的上下级隶属的地区与所述选择地区信息的对应地区不一致。

在本发明的一些实施例中,所述隶属关系纠偏的判定条件包括:

所述结构化地址中的解析地区信息中的某一级地区的地区信息为空且所述结构化地址中的解析地区信息中的该级地区信息的上下级隶属的地区的地区信息不为空。

在本发明的一些实施例中,所述地区变更纠偏的判定条件以及所述隶属关系纠偏的判定条件包括:

所述结构化地址中的选择地区信息包括其他区。

在本发明的一些实施例中,所述根据一规则库识别所述地址信息的纠偏类型包括:

对所述地址信息执行所述地址信息赋值规则,以将所述选择地区信息原语以及解析地区信息原语赋值至结构化地址;

对已赋值的所述结构化地址执行所述纠偏类型识别规则,以识别纠偏类型。

在本发明的一些实施例中,若所识别的纠偏类型为地区变更纠偏,则根据所述纠偏类型对所述地址信息进行纠偏包括:

根据所述所述结构化地址中的解析地区信息与所述地区变更映射集合的匹配,获取发生过变更的地区信息以及变更后的地区信息;

将所述变更后的地区信息替换所述发生过变更的地区信息,以更新所述地址信息。

在本发明的一些实施例中,若所识别的纠偏类型为隶属关系纠偏,则根据所述纠偏类型对所述地址信息进行纠偏包括:

确定待纠偏的地区信息的级别;

获取所述结构化地址中的选择地区信息与解析地区信息中相一致、且与所述待纠偏的地区信息为上级和/或下级隶属的地区信息作为基准地区信息;

获取对应所述待纠偏的地区信息的级别的、所述基准地区信息的上级和/或下级隶属的地区信息作为更新地区信息;

将所述更新地区信息更新所述待纠偏的地区信息,以更新所述地址信息。

根据本发明的又一方面,还提供一种地址纠偏装置,包括:

获取模块,配置成获取用户输入的地址信息;

识别模块,配置成根据一规则库识别所述地址信息的纠偏类型;

纠偏模块,配置成根据所述纠偏类型对所述地址信息进行纠偏。

根据本发明的又一方面,还提供一种电子设备,所述电子设备包括:处理器;存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述的步骤。

根据本发明的又一方面,还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述的步骤。

相比现有技术,本发明的优势在于:

本发明通过一规则库识别用户输入的地址信息的纠偏类型,从而根据所述纠偏类型对所述地址信息进行纠偏。由此实现用户输入地址的快速纠偏,从而避免错误地址对快递派送的影响,提高快读服务的质量和效率。

附图说明

通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。

图1示出了根据本发明实施例的地址纠偏方法的流程图。

图2示出了根据本发明具体实施例的根据一规则库识别所述地址信息的纠偏类型的流程图。

图3示出了根据本发明具体实施例的若所识别的纠偏类型为地区变更纠偏,则根据所述纠偏类型对所述地址信息进行纠偏的流程图。

图4示出了根据本发明具体实施例的若所识别的纠偏类型为隶属关系纠偏,则根据所述纠偏类型对所述地址信息进行纠偏的流程图。

图5示出了根据本发明实施例的地址纠偏的模块图。

图6示意性示出本发明示例性实施例中一种计算机可读存储介质示意图。

图7示意性示出本发明示例性实施例中一种电子设备示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。

此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此,实际执行的顺序有可能根据实际情况改变。

本发明优选地应用于快递场景中,本发明并非以此为限制,本发明也可以应用于其它需要进行地址纠偏的场景。

图1示出了根据本发明实施例的地址纠偏方法的流程图。地址纠偏方法包括如下步骤:

步骤s110:获取用户输入的地址信息。

具体而言,所述地址信息可以包括多级具有隶属关系的地区信息。例如,地址信息可以包括收件省、收件城市、收件区县以及收件详细地址,本发明并非以此为限制,其它具有隶属关系的层级设置也在本发明的保护范围之内。

具体而言,所述获取用户输入的地址可以包括获取用户选择的地址信息。换言之,可以通过向用户提供多级地区信息的选项,用户通过对该些选项的选择进行地址信息的输入。由此,用户选择的地址信息可以按提供多级地区信息分别选择获取。例如,向用户提供多个收件省的选项、多个收件城市的选项,以供用户进行分别选择获取。

具体而言,所述获取用户输入的地址可以包括获取用户手动输入的地址信息。换言之,地址信息由用户输入,用户输入的方式包括但不限于,通过输入法逐个单字输入、通过复制黏贴输入、通过复制黏贴的文本中识别出的地址信息进行输入、通过用户输入的图像进行文字识别获得地址信息。进一步地,用户手动输入的地址信息的多级地区信息可以经由输入文本的解析获取。

进一步地,所述获取用户输入的地址可以包括获取用户选择的地址信息以及获取用户手动输入的地址信息。换言之,地址信息中部分由用户选择输入,部分由用户手动输入。由用户选择输入和由用户手动输入的部分可以重叠。

具体而言,所述获取用户输入的地址还可以包括:将用户选择的地址信息中的多级地区信息以及用户手动输入的地址信息的多级地区信息转换为具有地区数据类型的地区信息,所述地区类型包括地区编码、当前地区的上一级地区的地区编码、地区名称、地区级别、隶属当前地区的地区列表中的一项或多项,所述隶属当前地区的地区列表中的每一项地区为具有地区数据类型的地区信息。由此,通过地区数据类型的统一,以便于后续规则的建立和规则的识别。地区数据类型用以实现数据格式上的统一。

具体而言,用户选择的地址信息中的多级地区信息以及用户手动输入的地址信息的多级地区信息可以通过一总地区列表转换为具有地区数据类型的地区信息,所述总地区列表中的每一项地区为具有地区数据类型的地区信息。由此,通过总地区列表来进行地区数据类型的转换,从而使得用户选择的地址信息中的多级地区信息以及用户手动输入的地址信息的多级地区信息按同一分级方式以及同一命名标准进行处理,以便于后续规则的建立和规则的识别。总地区列表用以实现地区分级和地区内容上的统一。

步骤s120:根据一规则库识别所述地址信息的纠偏类型。

具体而言,在实际交易场景中,用户通常能够准确提供收件人姓名、收件人电话、收件省和收件城市信息,但经常会对收件区县和收件详细地址两项存在认识偏差。针对这一问题,主流电商平台通常会在收件区县对应的下拉菜单选项中提供"其他区"选项,用于泛指收件城市下辖的行政区划不明确的地区,以此来辅助用户顺利填写收件地址。

收件区县菜单中的"其他区"选项,虽然方便了用户填写收件地址,但是对后续的物流分拣和派送操作带来了极大的困难,优选地,本发明可以针对对因收件区县="其他区"而产生的不准确收件地址的原因进行分析,从而通过规则库定义不同的纠偏类型,并根据确定的纠偏类型来进行地址纠偏。但本发明并非以此为限制,按本发明提供的方法,也可以对其它方式产生的地址错误进行纠偏。

步骤s130:根据所述纠偏类型对所述地址信息进行纠偏。

根据规则库确定纠偏类型后,即可以不同的纠偏类型执行不同的纠偏步骤,以实现地址信息的纠偏。

在本发明提供的地址纠偏方法中,通过一规则库识别用户输入的地址信息的纠偏类型,从而根据所述纠偏类型对所述地址信息进行纠偏。由此实现用户输入地址的快速纠偏,从而避免错误地址对快递派送的影响,提高快读服务的质量和效率。

在本发明的一些具体实现中,上述步骤s110可以通过如下方式实施:

首先,定义多个数据类型对象。

对于地区数据类型region(行政区数据类型,用于存储全国各级行政区信息),其可以包含如下属性:region_code,字符串类型,指代行政区编码,用于唯一标识行政区;parent_code,字符串类型,指代当前行政区所隶属的上一级行政区编码;region_name,字符串类型,指代行政区标准名称,例如:黑龙江省、哈尔滨市、道里区;region_alias,字符串类型,指代行政区别名,例如:黑龙江、哈尔滨、道里;region_type,枚举类型,指代当前行政区的行政级别,具体包括country、province、city、district、town五个枚举值,分别对应国家级行政区、省级行政区、市级行政区、区县级行政区和乡镇级行政区;children_list,列表类型,其中的元素均为region类型,指代当前行政区下辖的所有行政区信息;region_rank,枚举类型,指代当前行政区的行政等级,具体包括0、1、2、3、4五个枚举值(本发明并非以此为限,1-5或者其它5个数字、字母也可以用以表示行政等级),枚举值越大,行政级别越低。以上地区数据类型region所包括的属性仅仅是示意性起见,本发明并非以此为限制,属性的增加、减少、变化皆在本发明的保护范围之内。

对于原始收件地址数据类型sourcereceiveaddress,其用于存储用户输入的、与收件地址相关的源文本信息,其可以包含以下属性:source_user_name,字符串类型,指代用户输入的收件人姓名;source_user_phone,字符串类型,指代用户输入的收件人电话;source_select_prov,字符串类型,指代用户通过菜单选择的收件省名称;source_select_city,字符串类型,指代用户通过菜单选择的收件城市名称;source_select_dist,字符串类型,指代用户通过菜单选择的收件区县名称;source_rcv_addr,字符串类型,指代用户通过手动填写的收件详细地址文本。以上原始收件地址数据类型sourcereceiveaddress所包括的属性仅仅是示意性起见,本发明并非以此为限制,属性的增加、减少、变化皆在本发明的保护范围之内。

对于收件地址数据类型processreceiveaddress,其用于存储预处理后的收件地址信息,其可以包含以下属性:rcv_name,字符串类型,指代收件人姓名;rcv_phone,字符串类型,指代收件人电话;select_prov,地区数据类型region,指代用户通过菜单项选择的收件省信息;select_city,地区数据类型region,指代用户通过菜单项选择的收件市信息;select_dist,地区数据类型region,指代用户通过菜单项选择的收件区县信息;parse_prov,地区数据类型region,指代用户通过手工填写的收件省信息,可以通过对收件详细地址文本解析获取;parse_city,地区数据类型region,指代用户通过手工填写的收件市信息,可以通过对收件详细地址文本解析获取;parse_dist,地区数据类型region,指代用户通过手工填写的收件区县信息,可以通过对收件详细地址文本解析获取;parse_town,地区数据类型region,指代用户通过手工填写的收件乡镇信息,可以通过对收件详细地址文本解析获取。

在执行步骤s110时,可以将用户输入的收件地址,转换为特定数据类型的对象存储,以备后续操作使用。由此,可以将用户输入的收件地址source_rcv_address(原始收件地址数据类型sourcereceiveaddress)以及行政区划分明细表(例如由国家统计局提供的划分代码)作为输入,进行如下处理,从而获得processed_receive_address(收件地址数据类型processreceiveaddress,指代对source_rcv_sddr执行处理后的结果):

step1:基于行政区划分明细表(总地区列表),将全国各行政区初始化为地区数据类型region的对象,并存入列表region_list中。

step2:读取输入数据对象source_rcv_address,对其执行预处理操作。

step3:初始化processreceiveaddress类型数据对象,用于存储预处理结果。

step4:用户手动填写的收件人姓名、收件人电话预处理,包含以下步骤:

step4.1:

processed_receive_address.rcv_name=source_rcv_address.source_user_name

step4.2:

processed_receive_address.rcv_phone=source_rcv_address.source_user_phone

step5:用户通过菜单选择的收件省、收件城市、收件区县预处理,包含以下步骤:

step5.1:基于source_rcv_sddr.source_select_prov字段,在region_list查找与之对应的省级行政区,并将该省级行政区赋值给processed_receive_address.select_prov字段。

step5.2:基于source_rcv_sddr.source_select_city字段,在region_list查找与之对应的市级行政区,并将该市级行政区赋值给processed_receive_address.select_city字段。

step5.3:基于source_rcv_sddr.source_select_dist字段,在region_list查找与之对应的区县级行政区,并将该区县级行政区赋值给processed_receive_address.select_dist字段。

step6:用户手动填写的收件详细地址文本,可以采用地理信息系统领域普遍使用的geocoding方法(本发明并非以此为限制),对其进行解析,具体可以包含以下步骤:

step6.1:引入开源geocoding框架实现详细地址解析,并将region_list对应的行政区划分明细表作为标准地址库。

step6.2:输入收件详细地址文本source_rcv_address.source_rcv_add,框架将根据标准地址库创建倒排索引,并且从收件详细地址文本起始位置开始,采用最大度优先方式匹配词条,获取收件详细地址中的省、市、区县、乡镇信息。

step6.3:若step6.2成功解析出省级行政区,则将该其赋值给processed_receive_address.parse_prov字段;否则,该字段为空。

step6.4:若step6.2成功解析出市级行政区,则将该其赋值给processed_receive_address.parse_city字段;否则,该字段为空。

step6.5:若step6.2成功解析出区县级行政区,则将该其赋值给processed_receive_address.parse_dist字段;否则,该字段为空。

step6.6:若step6.2成功解析出乡镇级行政区,则将该其赋值给processed_receive_address.parse_town字段;否则,该字段为空.

step7:输出processed_receive_address,以备后续操作使用。

以上仅仅是示意性地描述步骤s110的一种实现方式,本发明并非以此为限制,在不违背本发明构思的前提下,步骤的省略、增加、合并、执行顺序的变化都在本发明的保护范围之内。

具体而言,在本发明的一些实施例中,可以从用户实际操作场景出发,对收件区县="其他区"现象出现的原因和特征进行分析,并基于此设计有效的纠偏策略,将"其他区"纠正为正确的区县。在该优选例中,选取三种最为典型的收件区县="其他区"操作场景,并分别归纳出了每一场景出现的原因和地址特征。然后,通过geocoding方式对收件详细地址进行文本解析,获取结构化后的收件地址。然后,结合不同场景特征和结构化后的收件地址,设计产生式推理规则,用于自动识别不准确收件地址类型,从而,可以实现产生式规则的解释器以及各类不准确地址的纠偏算法,输出纠偏后的收件地址。

下面,针对用户将收件区县选择为"其他区"而产生的不准确收件地址,选取对应的三个最典型的场景进行描述和分析,由此,通过归纳三类场景的出现原因和特征,为后续的产生式规则设计奠定基础。

场景一:用户使用老旧、过时的区县信息出现原因

部分区县级行政区划在近期发生过合并、更名、撤销等行为,而用户对此不够了解,仍然使用老旧区县作为收件地址使用,导致不准确收件地址的出现。相关实例如下表所示:

在该场景中:

用户通过菜单选择了正确的收件省和收件城市其次,用户通过菜单将收件区县选择为"其他区",然后,用户在收件详细地址中手动填写老旧区县和其余详细地址。

场景二:用户不清楚收件区县隶属于哪一个收件城市

用户对部分特殊或生僻的城市了解较少,只清楚收件区县隶属于哪一个收件省、不清楚收件区县隶属于哪一个收件城市,导致不准确收件地址的出现。相关实例如下表所示

在该场景中,用户通过菜单选择了正确的收件省,然后用户大多会通过菜单选择收件省下辖的省会城市作为收件城市,并且通过菜单将收件区县选择为"其他区",最后,用户在收件详细地址中手动填写正确的收件区县和其余详细地址。

场景三:用户不清楚部分乡镇级行政区划隶属于哪一个收件区县

用户不清楚部分特殊的乡镇级行政单位隶属于哪一个收件区县,导致不准确收件地址的出现。相关实例如下表所示:

在该场景中,用户通过菜单选择了正确的收件省和收件城市。其次,用户通过菜单将收件区县选择为"其他区"。最后,用户在收件详细地址中手动填写正确收件乡镇和其余详细地址。由此,在该实施例中,可以根据上述场景进行规则库的归纳和生成。

以上仅仅是示意性地描述本发明发现的三种常见地址错误发生的原因,本发明并非以此为限制,其它地址错误也可以按类似的方式归纳为规则从而加入规则库中。

具体而言,本发明所使用的所述规则库为产生式规则库。所述产生式规则库中各产生式规则的描述可以符合bnf范式(巴科斯-瑙尔范式,backus-naurform)。所述产生式规则库可以采用四元组g=(∑,v,s,p)形式定义,其中,∑表示终结符集合,v表示非终结符集合,s表示开始符号,p表示产生式规则集合。

在上述实施例中,所述产生式规则库的终结符集合可以包括表示用户选择的地址信息的选择地区信息原语;表示经解析的用户手动输入的地址信息的解析地区信息原语;纠偏类型原语,包括多个纠偏类型;空数据对象。具体而言,所述纠偏类型可以包括地区变更纠偏、隶属关系纠偏以及无需纠偏(本发明并非以此为限制,其它类型的纠偏也在本发明的保护范围之内;无需纠偏不作为纠偏类型也在本发明的保护范围之内)。在该实施例中,所述终结符集合还可以包括:地区变更映射集合,用于储存发生过变更的地区信息以及变更后的地区信息(用以进行地区变更纠偏的规则设定)。

选择地区信息原语,用以指代用户通过菜单选择的收件省、收件城市、收件区县信息,具体可以包含以下内容:select_prov,province数据类型对象,指代通过菜单选择的收件省;select_city,city数据类型对象,指代通过菜单选择的收件城市;select_dist,district数据类型对象,指代通过菜单选择的收件区县。

解析地区信息原语,指代用户在收件详细地址中填写,并且通过步骤s110解析获取的收件省、收件城市、收件区县、收件乡镇信息,具体可以包含以下内容:parse_prov,province数据类型对象,指代对收件详细地址进行文本解析而获取到的收件省;parse_city,city数据类型对象,指代对收件详细地址进行文本解析而获取到的收件市;parse_dist,district数据类型对象,指代对收件详细地址进行文本解析而获取到的收件区县;parse_town,town数据类型对象,指代对收件详细地址进行文本解析而获取到的收件乡镇。

纠偏类型原语,指代当前收件地址存在哪一类不准确现象、隶属于哪一种纠偏类型,具体可以包含以下内容:district_outdate_error,文本数据类型,指代当前收件地址中,存在使用老旧区县的情况,需要纠偏(属于地区变更纠偏,进一步地,除了区县之外,城市、乡镇的地区变更也属于地区变更纠偏的纠偏类型);district_affiliate_error,文本数据类型,指代当前收件地址中,存在区县隶属关系错误的情况,需要纠偏(属于隶属关系纠偏);town_affiliate_error,文本数据类型,指代当前收件地址中,存在乡镇隶属关系错误的情况,需要纠偏(属于隶属关系纠偏,除了区县、乡镇的隶属关系错误之外,城市、省的隶属关系错误也属于隶属关系纠偏的纠偏类型);normal_address,文本数据类型,指代当前收件地址为规范收件地址,无需纠偏。

在本实施例中,地区变更映射集合可以用以储存当前发生过更名、撤销、合并的区县信息,及其对应的当前最新区县信息,具体可以按如下方式定义:

district_outdate_set,哈希类型数据对象,其中的key为district类型,指代已过时的区县信息;value为district类型,指代与过时区县相对应、当前最新的区县信息。

进一步地,其它发生过更名、撤销、合并的乡镇、城市、省等也可以按上述方式定义在地区变更映射集合中。

空数据对象:记为∈,指代产生式推理过程中遇到的空符号串。

进一步地,在本发明的一些实施例中,产生式规则库的终结符集合还可以包括用户信息原语,用于指代用户填写的收件人姓名和收件人电话信息,具体可以包含以下内容:user_name,文本数据类型对象,指代收件用户的姓名信息;user_phone,文本数据类型对象,指代收件用户的电话信息。

具体而言,非终结符集合可以包括开始符号(s)、替换符号、以及推理符号。开始符号(s)包括:<开始>,用以指代产生式推理的起点,对应产生式规则库四元组定义g=(∑,v,s,p)中的s。替换符号可以包括<结构化收件地址>,用于保存结构化后的收件地址变量,其可进一步细化为如下内容:<用户信息>,用于保存用户姓名和电话,可进一步解析为用户信息原语;<选择地区片段>,用于保存用户通过菜单选择的收件地址信息,可进一步解析为选择地区信息原语;<解析地区片段>,用于保存对收件详细地址进行文本解析后获取的收件地址信息,可进一步解析为解析地区信息原语。推理符号可以包括地区变更纠偏的判定规则、隶属关系纠偏的判定规则以及规范地址的判定规则。例如,推理符号可以包括:<老旧区县判定规则>,用于保存针对老旧区县判定的前提和结论信息;<区县隶属错误判定规则>,用于保存针对区县隶属错误判定的前提和结论信息;<乡镇隶属错误判定规则>,用于保存针对乡镇隶属错误判定的前提和结论信息;<规范地址判定规则>,用于保存针对规范收件地址判定的前提和结论信息。以上仅仅是示意性地描述本发明提供的非终结符集合,本发明并非以此为限制。

具体而言,所述产生式规则库的产生式规则集合可以包括:地址信息赋值规则,用以将所述选择地区信息原语以及解析地区信息原语赋值至结构化地址(以便统一进行后续的规则判断);以及纠偏类型识别规则,用以识别纠偏类型。进一步地,所述纠偏类型识别规则可以包括:地区变更纠偏规则以及隶属关系纠偏规则。地区变更纠偏规则可以包括地区变更纠偏的判定前提、判定条件和判定结论。隶属关系纠偏规则可以包括隶属关系纠偏的判定前提、判定条件和判定结论。由此,通过判定前提、判定条件和判定结论以实现不同纠偏类型的判定。

在一些具体实施例中,所述地区变更纠偏的判定前提以及隶属关系纠偏的判定前提包括:所述结构化地址中的选择地区信息与解析地区信息中设定级别的地区相一致。设定级别可以根据不同的纠偏类型进行设置。例如,对于区县变更纠偏的判定前提以及隶属关系纠偏的判定前提中的设定级别为收件省以及收件市;对于市级变更纠偏的判定前提以及隶属关系纠偏的判定前提中的设定级别为收件省以及收件区县,以此类推,在此不予赘述。进一步地,所述地区变更纠偏的判定条件以及所述隶属关系纠偏的判定条件可以包括:所述结构化地址中的选择地区信息包括其他区。由此,可以针对前述的选择“其它区”造成的地址错误进行纠偏。

在一些具体实施例中,所述地区变更纠偏的判定条件可以包括:所述结构化地址中的解析地区信息中至少一级地区属于所述地区变更映射集合。当所述结构化地址中的解析地区信息中至少一级地区属于所述地区变更映射集合(具体而言,此处所描述的属于表示属于地区变更映射集合的key的集合),表明该地区进行过变更,由此,可以判定属于地区变更纠偏。

在一些具体实施例中,所述隶属关系纠偏的判定条件可以包括:所述结构化地址中的解析地区信息的上下级隶属的地区与所述选择地区信息的对应地区不一致。由此,可以通过解析地区信息和选择地区信息的比对,确定结构化地址中存在隶属关系错误。在该实施例中,所述隶属关系纠偏的判定条件还可以包括:所述结构化地址中的解析地区信息中的某一级地区的地区信息为空且所述结构化地址中的解析地区信息中的该级地区信息的上下级隶属的地区的地区信息不为空。由此,实现进一步地隶属关系错误的判定。

由此,在本发明的一些具体实现中,产生式规则集合(p)可以包括如下规则:

rule1:<开始>::=<结构化收件地址>

rule2:<结构化收件地址>::=<用户信息><菜单选择片段><地址解析片段>

rule3:<用户信息>::=<用户姓名><用户电话>

rule4:<用户姓名>::=user_name

rule5:<用户电话>::=user_phone

rule6:<选择地区片段>::=<选择省><选择市><选择区县>

rule7:<选择省>::=select_prov

rule8:<选择市>::=select_city

rule9:<选择区县>::=select_dist

rule10:<解析地区片段>::=<解析省><解析市><解析区县><解析乡镇>

rule11:<解析省>::=parse_prov|∈

rule12:<解析市>::=parse_city|∈

rule13:<解析区县>::=parse_dist|∈

rule14:<解析乡镇>::=parse_town|∈

rule15:<老旧区县判定规则>::=<老旧区县判定前提>→<老旧区县判定结论>

rule16:<老旧区县判定前提>::=<收件省一致性条件><收件市一致性条件><老旧区县识别条件>

rule17:<收件省一致性条件>::=<解析省>=∈

|(<解析省>≠∈∧select_prov=parse_prov)

rule18:<收件市一致性条件>::=<解析市>=∈

|(<解析省>≠∈∧select_city=parse_city)

rule19:<老旧区县识别条件>::=select_dist="其他区"∧parse_dist∈district_outdate_set

rule20:<老旧区县判定结论>::=(<老旧区县判定前提>=true)→district_outdate_error|<规范地址判定规则>

rule21:<区县隶属错误判定规则>::=<区县隶属错误判定前提>→<区县隶属错误判定结论>

rule22:<区县隶属错误判定前提>::=<收件省一致性条件><区县隶属错误识别条件>

rule23:<区县隶属错误识别条件>::=select_dist="其他区"∧<解析区县>≠∈∧parse_dist.affiliate_city_code≠select_city.city_code

rule24:<区县隶属错误判定结论>::=(<区县隶属错误识别条件>=true)→district_affiliate_error|<规范地址判定规则>

rule25:<乡镇隶属错误判定规则>::=<乡镇隶属错误判定前提>→<乡镇隶属错误判定结论>

rule26:<乡镇隶属错误判定前提>::=<收件省一致性条件><收件市一致性条件><乡镇隶属错误识别条件>

rule27:<乡镇隶属错误识别条件>::=select_dist="其他区"∧<解析区县>=∈∧<解析乡镇>≠∈

rule28:<乡镇隶属错误判定结论>::=(<乡镇隶属错误识别条件>=true)→town_affiliate_error|<规范地址判定规则>

rule29:<规范地址判定规则>::=

(<老旧区县判定前提>=false∧<区县隶属错误判定前提>=false∧<乡镇隶属错误判定前提>=false)→normal_address

以上仅仅是示意性地示出本发明提供的产生式规则集合,各规则中的符号含义可以参见bnf语法规范中对该些符号的定义,本发明并非以此为限制,规则的增加、减少、改变皆在本发明的保护范围之内。

下面参见图2,图2示出了根据本发明具体实施例的根据一规则库识别所述地址信息的纠偏类型的流程图。图2共示出如下步骤:

步骤s121:对所述地址信息执行所述地址信息赋值规则,以将所述选择地区信息原语以及解析地区信息原语赋值至结构化地址。

步骤s122:对已赋值的所述结构化地址执行所述纠偏类型识别规则,以识别纠偏类型。

下面参见图3,图3示出了根据本发明具体实施例的若所识别的纠偏类型为地区变更纠偏,则根据所述纠偏类型对所述地址信息进行纠偏的流程图。图3共示出如下步骤:

步骤s131:根据所述所述结构化地址中的解析地区信息与所述地区变更映射集合的匹配,获取发生过变更的地区信息以及变更后的地区信息;

步骤s132:将所述变更后的地区信息替换所述发生过变更的地区信息,以更新所述地址信息。

由此,可以通过上述步骤实现地区变更纠偏。

下面参见图4,图4示出了根据本发明具体实施例的若所识别的纠偏类型为隶属关系纠偏,则根据所述纠偏类型对所述地址信息进行纠偏的流程图。图4共示出如下步骤:

步骤s141:确定待纠偏的地区信息的级别;

步骤s142:获取所述结构化地址中的选择地区信息与解析地区信息中相一致、且与所述待纠偏的地区信息为上级和/或下级隶属的地区信息作为基准地区信息;

步骤s143:获取对应所述待纠偏的地区信息的级别的、所述基准地区信息的上级和/或下级隶属的地区信息作为更新地区信息;

步骤s141:将所述更新地区信息更新所述待纠偏的地区信息,以更新所述地址信息。

由此,可以通过上述步骤实现隶属关系纠偏。

在本发明的一些具体实现中,在生成产生式规则库后,可以通过如下方式进行纠偏类型的识别并根据纠偏类型进行地址纠偏。

具体而言,首先定义一数据类型finalreceiveaddress,自定义数据类型,用于存储纠偏后的收件地址信息,可以包含如下属性:final_rcv_name,字符串类型,指代收件人姓名;final_rcv_phone,字符串类型,指代收件人电话;final_prov,地区数据类型region,指代纠偏后的收件省信息;final_city,地区数据类型region,指代纠偏后的收件市信息;final_dist,地区数据类型region,指代纠偏后的收件区县信息;final_town,地区数据类型region,指代纠偏后的收件乡镇信息。

具体而言,在使用产生式规则时,可以选用经典的正向推理方法,完成产生式推理过程,即从开始符号出发,不断使用产生式规则,最终到达目标状态。

具体而言,可以将processed_receive_address(收件地址数据类型processreceiveaddress,指代预处理后的收件地址信息)作为输入,通过产生式规则的判断和对应的算法进行纠偏,从而获得final_rcv_address(finalreceiveaddress类型,指代纠偏后的收件地址信息)作为输出。具体的算法步骤包括:

step1:基于processed_receive_address的属性值信息,从产生式rule1开始,执行推理过程。

step2:从产生式规则库中不断选择产生式规则,并通过产生式右部取代左部的方式完成推理操作,并且将推理结果作为下一次推理的输入。

step3:迭代执行step2,直至获取到纠偏类型原语{district_outdate_error、district_affiliate_error、town_affiliate_error、normal_address}之一为止。

step4:若产生式推理结果为district_outdate_error,表示用户因使用老旧区县选择了"其他区",进而产生了不准确的收件地址,纠偏步骤如下:

step4.1:确定纠偏后的收件人姓名和收件人电话,即执行

final_rcv_address.final_rcv_name=processed_receive_address.rcv_name、

final_rcv_address.final_rcv_phone=processed_receive_address.rcv_phone。

step4.2:根据产生式规则rule16~rule18,确定纠偏后的收件省和收件城市,即执行

final_rcv_address.final_prov=processed_receive_address.select_prov、

final_rcv_address.final_city=processed_receive_address.select_city。

step4.3:根据产生式规则库中的终结符district_outdate_error和产生式规则rule19,确定老旧区县processed_receive_address.parse_dist对应的纠偏后区县rectify_dist,并执行final_rcv_address.final_dist=rectify_dist。

step4.5:执行final_rcv_address.final_town=processed_receive_address.parse_town。

step4.6:输出final_rcv_address,算法结束。

step5:若产生式推理结果为district_affiliate_error,表示用户不清楚收件区县隶属于哪一个城市而选择了"其他区",进而产生了不准确的收件地址,纠偏步骤如下:

step5.1:确定纠偏后的收件人姓名和收件人电话,即执行

final_rcv_address.final_rcv_name=processed_receive_address.rcv_name、

final_rcv_address.final_rcv_phone=processed_receive_address.rcv_phone。

step5.2:根据产生式规则rule17和rule22,确定纠偏后的收件省,即执行final_rcv_address.final_prov=processed_receive_address.select_prov。

step5.3:根据产生式规则rule23,确定纠偏后的收件区县,即执行

final_rcv_address.final_dist=processed_receive_address.parse_dist。

step5.4:根据step5.3中确定的收件区县final_rcv_address.final_dist,获取其上一级城市的行政区编码,即final_rcv_address.final_dist.parent_code,进而根据该行政区编码获取到纠偏后的收件城市rectify_city,并执行final_rcv_address.final_city=rectify_city。

step5.5:执行final_rcv_address.final_town=processed_receive_address.parse_town。

step5.6:输出final_rcv_address,算法结束。

step6:若产生式推理结果为town_affiliate_error,表示用户不清楚收件乡镇隶属于哪一个区县而选择了"其他区",进而产生了不准确的收件地址,纠偏步骤如下:

step6.1:确定纠偏后的收件人姓名和收件人电话,即执行

final_rcv_address.final_rcv_name=processed_receive_address.rcv_name、

final_rcv_address.final_rcv_phone=processed_receive_address.rcv_phone。

step6.2:根据产生式规则rule17、rule18和rule26,确定纠偏后的收件省和收件城市,即执行

final_rcv_address.final_prov=processed_receive_address.select_prov、

final_rcv_address.final_city=processed_receive_address.select_city。

step6.3:根据产生式规则rule27,确定纠偏后的收件乡镇,即执行

final_rcv_address.final_town=processed_receive_address.parse_town。

step6.4:根据step6.3中确定的收件乡镇final_rcv_address.final_town,获取其上一级区县的行政区编码,即final_rcv_address.final_town.parent_code,进而根据该行政区编码获取到纠偏后的收件区县rectify_dist,并执行final_rcv_address.final_dist=rectify_dist。

step6.5:输出final_rcv_address,算法结束。

step7:若产生式推理结果为normal_address,表示当前收件地址是规范准确的,无需进行纠偏,直接执行以下赋值步骤即可:

step7.1:

final_rcv_address.final_rcv_name=processed_receive_address.rcv_name。

step7.2:

final_rcv_address.final_rcv_phone=processed_receive_address.rcv_phone。

step7.3:

final_rcv_address.final_prov=processed_receive_address.select_prov。

step7.4:

final_rcv_address.final_city=processed_receive_address.select_city。

step7.5:

final_rcv_address.final_dist=processed_receive_address.select_dist。

step7.6:

final_rcv_address.final_town=processed_receive_address.parse_town。

step7.7:输出final_rcv_address,算法结束。

以上仅仅是示意性地描述本发明的多个实现方式,各实现方式可以单独或组合来实现,本发明并非以此为限制。

下面参见图5,图5示出了根据本发明实施例的地址纠偏装置的模块图。地址纠偏装置200包括获取模块210、识别模块220以及纠偏模块230。

获取模块210配置成获取用户输入的地址信息;

识别模块220配置成根据一规则库识别所述地址信息的纠偏类型;

纠偏模块230配置成根据所述纠偏类型对所述地址信息进行纠偏。

在本发明的示例性实施方式的地址纠偏装置200中,通过一规则库识别用户输入的地址信息的纠偏类型,从而根据所述纠偏类型对所述地址信息进行纠偏。由此实现用户输入地址的快速纠偏,从而避免错误地址对快递派送的影响,提高快读服务的质量和效率。

图5仅仅是示意性的示出本发明提供的地址纠偏装置200,在不违背本发明构思的前提下,模块的拆分、合并、增加都在本发明的保护范围之内。本发明提供的地址纠偏装置200可以由软件、硬件、固件、插件及他们之间的任意组合来实现,本发明并非以此为限。

在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述地址纠偏方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述地址纠偏方法部分中描述的根据本发明各种示例性实施方式的步骤。

参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如java、c++等,还包括常规的过程式程序设计语言-诸如“c”语言或类似的程序设计语言。程序代码可以完全地在租户计算设备上执行、部分地在租户设备上执行、作为一个独立的软件包执行、部分在租户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到租户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

在本发明的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述地址纠偏方法的步骤。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图7来描述根据本发明的这种实施方式的电子设备500。图7显示的电子设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:至少一个处理单元510、至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元510)的总线530、显示单元540等。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书上述地址纠偏方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元510可以执行如图1至图4任一幅或多幅附图所示的步骤。

所述存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(rom)5203。

所述存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备500也可以与一个或多个外部设备600(例如键盘、指向设备、蓝牙设备等)通讯,还可与一个或者多个使得租户能与该电子设备500交互的设备通讯,和/或与使得该电子设备500能与一个或多个其它计算设备进行通讯的任何设备(例如路由器、调制解调器等等)通讯。这种通讯可以通过输入/输出(i/o)接口550进行。并且,电子设备500还可以通过网络适配器560与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通讯。网络适配器560可以通过总线530与电子设备500的其它模块通讯。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明实施方式的上述地址纠偏方法。

相比现有技术,本发明的优势在于:

本发明通过一规则库识别用户输入的地址信息的纠偏类型,从而根据所述纠偏类型对所述地址信息进行纠偏。由此实现用户输入地址的快速纠偏,从而避免错误地址对快递派送的影响,提高快读服务的质量和效率。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1