首页> 中国专利> 面向人机对话的地址要素解析方法、系统与计算机可读介质

面向人机对话的地址要素解析方法、系统与计算机可读介质

摘要

本发明提供一种面向人机对话的地址要素解析方法、系统与计算机可读介质,所述方法包括:从背景信息中获取已知地址信息,获取用户的回复文本;从用户的回复文本中解析地址,得到用户地址要素;将解析得到的用户地址要素与已知地址信息进行组合,得到地址对应的地址要素;判断是否满足预设的条件:若满足预设条件,则结束提问环节;若不满足预设条件,则根据不满足的情况构建所需向用户提问的问题,并按照前述步骤方式从用户对问题的回复文本中进行解析地址以及组合,并进一步判断是否满足预设的条件,直到满足预设条件;最后,用当前地址信息更新背景地址信息。本发明方法可准确识别地址要素的角色,准确地将上下文和背景的地址信息与用户话语中的地址信息结合起来,完成面向人机对话交互的地址要素解析。

著录项

  • 公开/公告号CN115630648A

    专利类型发明专利

  • 公开/公告日2023-01-20

    原文格式PDF

  • 申请/专利权人 南京云问网络技术有限公司;

    申请/专利号CN202211364279.2

  • 发明设计人 李辰刚;杜振东;王清琛;

    申请日2022-11-02

  • 分类号G06F40/295(2020.01);G06F16/335(2019.01);G06F16/332(2019.01);

  • 代理机构南京行高知识产权代理有限公司 32404;

  • 代理人王菊花

  • 地址 210000 江苏省南京市鼓楼区建宁路65号2楼203室

  • 入库时间 2023-06-19 18:24:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-02-14

    实质审查的生效 IPC(主分类):G06F40/295 专利申请号:2022113642792 申请日:20221102

    实质审查的生效

  • 2023-01-20

    公开

    发明专利申请公布

说明书

技术领域

本发明属于人工智能领域中的人机对话系统技术领域,涉及自然语言处理,具体涉及一种面向人机对话的地址要素解析方法、系统与计算机可读介质。

背景技术

在人机对话系统中,对话系统(聊天机器人)常常需要向用户询问用户所在、将要到达或曾经去过的地址,以便提供对应的服务。该功能在物流配送、外卖送餐、预约出租车、流行病学调查等领域都有广泛的应用。通常的对话流程中,对话系统虽然可以采用位置共享或IP地址定位等技术获取用户的地址信息,但是受制于用户要传递的位置往往和用户当前位置不一致,因此对话是一个非常必要的手段。

现有的实现对话的流程通常为:首先,对话系统获取用户粗略的背景地点信息;然后,对话系统向用户询问地址,并融入背景信息,对用户回复的地址进行解析;之后,对话系统对用户回复的地址判断是否满足要求,若满足要求则结束,如不满足要求,则根据存在的问题反问。

现有的地址要素解析方法可以对地址文本进行切分并识别各个地址要素,并得到比较准确的结果。但是,现有的方法主要针对的是半结构化数据中明确的地址文本字段,如使用选择框得到前几个级别的行政区划,并手动输入其它部分,并没有考虑到由于语音识别,键盘输入、手写输入等输入方式产生错字。此外,受制于对话的场景,用户在对话中提供的地址信息往往是不完整或陈旧的,例如在发生行政区划变更后仍输入了旧行政区划的地址,不完整的信息需要依赖人机对话系统中存在的上下文关系。因此,现有的一些地址要素解析方法通常也很难对地址之中陈旧的或错误的信息进行自动纠正。

同时,现有的地址要素解析方法也存在一些准确性差的问题。例如在CN113449528A的中国专利申请中提出的一种地址要素提取方法、装置、计算机设备和存储介质中,提出一种地址要素解析的方法,该方法采用地址要素提取模型识别地址要素,地址要素提取模型基于对知识增强的语义表示模型和条件随机场模型,可以达到识别地址要素的效果。但在实际应用中,该方法无法准确区分地址要素的类型。例如,“山西路67号世贸中心A座1202号云朵商贸”中,模型会将“云朵商贸”和“世贸中心”均识别为“兴趣地点”(POI),然而由于“云朵商贸”是“世贸中心”下属的地点,应当标注为“子兴趣地点”。究其原因,是前后地址要素之间存在多种上下位关系,而以往方法单纯依靠序列标注模型,建模距离短,难以处理全局的标签关系,造成元素角色识别不准确。

发明内容

本发明目的在于提供一种面向人机对话的地址要素解析方法,包括以下步骤:

步骤1:从背景信息中获取已知地址信息,获取用户的回复文本;

步骤2:从用户的回复文本中解析地址,得到用户地址要素;

步骤3:将解析得到的用户地址要素与已知地址信息进行组合,得到地址对应的地址要素;

步骤4:判断是否满足预设的条件:

若满足预设条件,则结束提问环节;

若不满足预设条件,则根据不满足的情况构建所需向用户提问的问题,并按照前述步骤方式从用户对问题的回复文本中进行解析地址以及组合,并进一步判断是否满足预设的条件,直到满足预设条件;

步骤5:用当前地址信息更新背景地址信息。

作为可选的实施方式,在步骤2中,从用户的回复文本中解析地址,得到用户地址要素,包括以下步骤:

步骤2.1:从用户的回复文本中获取待处理地址文本;

步骤2.2:对待处理地址文本进行切分,并标注初步的地址角色,得到地址要素列表;

步骤2.3:组合各地址要素,去除无效的地址要素,并调整各个地址要素最终的地址角色,得到地址要素列表。

作为可选的实施方式,在步骤2.1中,从用户的回复文本中获取待处理地址文本,采用基于序列标注的实体识别模型获取地址文本,包括以下步骤:

首先,对用户回复文本进行分词和词性标注处理;

然后,将文本的分词、词性标注信息转换为字符的特征;

之后,将字符和字符特征送入条件随机场或基于神经网络的条件随机场模型,得到每个字符的标签;

最后,通过状态机解析标签序列,即获取到待处理地址文本。

作为可选的实施方式,基于序列标注的实体识别模型采用预训练模型,在模型训练时,其中的标注的训练文本数据中按照“B、I、E、S、O”的方式对地址文本的字符进行标注:

B表示地址要素的开头字符;

I表示地址的中间字符;

E表示地址的结尾字符;

S表示只有一个字符的地址;

O表示不属于任何一个地址的字符

由此,根据“B、I、E、S、O”的方式将地址文本转换为字符标签的序列;

对于每一个地址文本的标注模式中,除了当一个地址只有一个字符时用S表示以外,其他模式中,一个地址的标签以B开头,以E结尾,B和E之间只包含I,由此实体识别模型在训练过程中学习这一标记表达模式,得到标记之间的依赖关系。

作为可选的实施方式,在步骤2.3中,组合各地址要素,去除无效的地址要素,并利用角色转换规则和全局约束,进一步调整地址要素的角色,得到地址要素列表;

其中,所述角色转换规则为预先定义的多个规则模板,当地址要素中的一部分满足规则模板时,按照规则模板中对应的处理方式对地址要素的角色进行调整;

所述全局约束是指对于地址要素的全局角色进行删除、变换的约束规则;

在最终执行完成角色转换规则和全局约束的转换后,按照地址级别从高到低,对地址要素的角色进行顺序组合调整。

作为可选的实施方式,在步骤3中,将解析得到的用户地址要素与已知地址信息进行组合,得到地址对应的地址要素,包括:

步骤3.1:将地址要素与具体的地址要素实体知识库中的地址进行链接,得到用户地址要素列表;

步骤3.2:组合已知地址信息和用户地址要素列表中的当前用户地址要素,得到完整的地址;

步骤3.3:按顺序对相邻的地址要素进行过滤合并;

步骤3.4:对于过滤合并后的地址要素,转换对应的词语为标准名称。

作为可选的实施方式,在步骤3.2中,根据已知地址信息的不同,分为两种情况执行处理:

(1)如果已知地址信息是单一的行政区划,则根据以下的逻辑判断补全:

步骤3.2.1.1:如果当前地址信息的最高级别高于或等于已知地址信息的最低级别,且对应单个地址要素实体,则直接覆盖已知地址信息;

步骤3.2.1.2:如果当前地址信息的最高级别高于或等于已知地址信息的最低级别,且对应多个地址要素实体,则使用已知地址信息的高于当前地址信息的一级行政区划对当前地址信息的最高一级地址要素实体进行合并筛选操作,得到合并筛选的实体列表;如果合并筛选的实体列表不为空,则将该结果作为对应的实体列表,否则保持不变;

步骤3.2.1.3:如果当前地址信息的最高级别小于已知地址信息的最低级别,则使用已知地址信息与当前地址信息的最高级别对应的实体执行合并筛选操作,得到合并筛选的实体列表;如果合并筛选的实体列表不为空,则将该结果作为对应的实体列表,否则保持不变。

(2)如果已知地址信息是经过解析得到的地址,使用当前地址要素按照级别覆盖现有已知地址信息的地址要素,最后检查保留的已知地址要素是否与用户地址要素冲突,其包括以下过程:

步骤3.2.2.1:如果当前地址要素最高级别小于地址要素实体知识库扥最低级别,则认为兼容;

步骤3.2.2.2:如果当前地址要素最高级别小于等于已知地址信息最低级别,对“已知地址信息”和“当前地址要素”的最高一级执行“合并筛选”操作,如果合并结果不为空,则两者兼容;

步骤3.2.2.3:如果已知地址信息最高级别小于当前地址要素最低级别,对“当前地址要素”和“已知地址信息”的最高一级执行“合并筛选”操作,如果合并结果不为空,则两者兼容;

步骤3.2.2.4:如果不兼容,则合并失败,记录合并失败标志,并只使用当前地址信息。

作为可选的实施方式,执行合并筛选操作,包括:

a)依次选取高级别地址要素对应的地址要素实体GPE

b)依次选取低级别地址要素对应的地址要素实体GPE

c)如果GPE

d)循环完毕,将地址要素实体合并列表作为两个地址要素合并后的行政区划。

作为可选的实施方式,在所述步骤4中,根据不满足的情况构建所需向用户提问的问题,包括:

步骤5.1:如果没有获取到地址要素信息,直接反馈“没有获取到地址信息”;

步骤5.2:如果没有获取到所需级别的信息,根据未获取到的地址级别进行提问;

步骤5.3:如果地址存在不连续,则选择最长不连续片段中较高的地址级别进行提问;

步骤5.4:如果地址存在行政区划歧义,则根据歧义的数量产生提问问题。

根据本发明目的的第二方面,还提出一种计算机系统,包括:

一个或多个处理器;

存储器,存储可被操作的指令,指令在被一个或多个处理器执行时,实现前述面向人机对话的地址要素解析方法的过程。

根据本发明目的的第三方面,还提出一种存储计算机程序的计算机可读取介质,所述计算机程序包括能被一个或多个计算机执行的指令,所述指令在被所述一个或多个计算机执行时,实现前述面向人机对话的地址要素解析方法的过程。

与现有技术相比,本发明的面向人机对话的地址要素解析方法的显著优点在于:

1.本发明的面向人机对话的地址要素解析方法,可以准确识别地址要素的角色,完成面向人机对话交互的地址要素解析,准确地将上下文和背景的地址信息与用户话语中的地址信息结合起来,判断地址是否符合要求并对需要补充的内容进行适当的反问,最终获得期望的地址信息;

2.本发明的面向人机对话的地址要素解析方法,通过引入地址要素知识库,较好地解决了用户输入地址中的错字、陈旧信息等干扰,识别和还原出正确的地址,提高地址识别的准确率。

应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。另外,所要求保护的主题的所有组合都被视为本公开的发明主题的一部分。

结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。

附图说明

附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:

图1是本发明示例性实施例的面向人机对话的地址要素解析方法的流程示意图。

图2是本发明示例性实施例的用户会话文本“南京的”经过解析后的结果示意图。

图3是本发明示例性实施例的读音近似匹配的示意图。

具体实施方式

为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。

在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。本公开的实施例不必定意在包括本发明的所有方面。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。

结合图1所示的实施例的面向人机对话的地址要素解析方法,其实现包括以下步骤:

步骤1:从背景信息中获取已知地址信息,获取用户的回复文本;

步骤2:从用户的回复文本中解析地址,得到用户地址要素;

步骤3:将解析得到的用户地址要素与已知地址信息进行组合,得到地址对应的地址要素;

步骤4:判断是否满足预设的条件:

若满足预设条件,则结束提问环节;

若不满足预设条件,则根据不满足的情况构建所需向用户提问的问题,并按照前述步骤方式从用户对问题的回复文本中进行解析地址以及组合,并进一步判断是否满足预设的条件,直到满足预设条件;

步骤5:用当前地址信息更新背景地址信息。

作为可选的实施方式,在步骤1中,已知地址信息作为当前对话中作为背景信息的地址信息,其来源包括:

(1)对话场景预设的背景地址信息;

(2)用户的基本地址信息;

(3)用户在对话中已提到的地址信息。

作为可选的实施方式,在步骤2中,从用户的回复文本中解析地址,得到用户地址要素,包括以下步骤:

步骤2.1:从用户的回复文本中获取待处理地址文本;

步骤2.2:对待处理地址文本进行切分,并标注初步的地址角色,得到地址要素列表;

步骤2.3:组合各地址要素,去除无效的地址要素,并调整各个地址要素最终的地址角色,得到地址要素列表。

作为可选的实施方式,在步骤2.1中,从用户的回复文本中获取待处理地址文本,采用基于序列标注的实体识别模型获取地址文本,包括以下步骤:

首先,对用户回复文本进行分词和词性标注处理;

然后,将文本的分词、词性标注信息转换为字符的特征;

之后,将字符和字符特征送入条件随机场或基于神经网络的条件随机场模型,得到每个字符的标签;

最后,通过状态机解析标签序列,即获取到待处理地址文本。

作为可选的实施方式,基于序列标注的实体识别模型采用预训练模型,在模型训练时,其中的标注的训练文本数据中按照“B、I、E、S、O”的方式对地址文本的字符进行标注:

B表示地址要素的开头字符;

I表示地址的中间字符;

E表示地址的结尾字符;

S表示只有一个字符的地址;

O表示不属于任何一个地址的字符

由此,根据“B、I、E、S、O”的方式将地址文本转换为字符标签的序列;

对于每一个地址文本的标注模式中,除了当一个地址只有一个字符时用S表示以外,其他模式中,一个地址的标签以B开头,以E结尾,B和E之间只包含I,由此实体识别模型在训练过程中学习这一标记表达模式,得到标记之间的依赖关系。

作为可选的实施方式,在步骤2.3中,组合各地址要素,去除无效的地址要素,并利用角色转换规则和全局约束,进一步调整地址要素的角色,得到地址要素列表;

其中,角色转换规则为预先定义的多个规则模板,当地址要素中的一部分满足规则模板时,按照规则模板中对应的处理方式对地址要素的角色进行调整;

全局约束是指对于地址要素的全局角色进行删除、变换的约束规则;

在最终执行完成角色转换规则和全局约束的转换后,按照地址级别从高到低,对地址要素的角色进行顺序组合调整。

作为可选的实施方式,在步骤3中,将解析得到的用户地址要素与已知地址信息进行组合,得到地址对应的地址要素,包括:

步骤3.1:将地址要素与具体的地址要素实体知识库中的地址进行链接,得到用户地址要素列表;

步骤3.2:组合已知地址信息和用户地址要素列表中的当前用户地址要素,得到完整的地址;

步骤3.3:按顺序对相邻的地址要素进行过滤合并;

步骤3.4:对于过滤合并后的地址要素,转换对应的词语为标准名称。

作为可选的实施方式,在步骤3.2中,根据已知地址信息的不同,分为两种情况执行处理:

(1)如果已知地址信息是单一的行政区划,则根据以下的逻辑判断补全:

步骤3.2.1.1:如果当前地址信息的最高级别高于或等于已知地址信息的最低级别,且对应单个地址要素实体,则直接覆盖已知地址信息;

步骤3.2.1.2:如果当前地址信息的最高级别高于或等于已知地址信息的最低级别,且对应多个地址要素实体,则使用已知地址信息的高于当前地址信息的一级行政区划对当前地址信息的最高一级地址要素实体进行合并筛选操作,得到合并筛选的实体列表;如果合并筛选的实体列表不为空,则将该结果作为对应的实体列表,否则保持不变;

步骤3.2.1.3:如果当前地址信息的最高级别小于已知地址信息的最低级别,则使用已知地址信息与当前地址信息的最高级别对应的实体执行合并筛选操作,得到合并筛选的实体列表;如果合并筛选的实体列表不为空,则将该结果作为对应的实体列表,否则保持不变。

(2)如果已知地址信息是经过解析得到的地址,使用当前地址要素按照级别覆盖现有已知地址信息的地址要素,最后检查保留的已知地址要素是否与用户地址要素冲突,其包括以下过程:

步骤3.2.2.1:如果当前地址要素最高级别小于地址要素实体知识库扥最低级别,则认为兼容;

步骤3.2.2.2:如果当前地址要素最高级别小于等于已知地址信息最低级别,对“已知地址信息”和“当前地址要素”的最高一级执行“合并筛选”操作,如果合并结果不为空,则两者兼容;

步骤3.2.2.3:如果已知地址信息最高级别小于当前地址要素最低级别,对“当前地址要素”和“已知地址信息”的最高一级执行“合并筛选”操作,如果合并结果不为空,则两者兼容;

步骤3.2.2.4:如果不兼容,则合并失败,记录合并失败标志,并只使用当前地址信息。

作为可选的实施方式,前述执行合并筛选操作,包括:

a)依次选取高级别地址要素对应的地址要素实体GPE

b)依次选取低级别地址要素对应的地址要素实体GPE

c)如果GPE

d)循环完毕,将地址要素实体合并列表作为两个地址要素合并后的行政区划。

作为可选的实施方式,前述的预设条件包括下述条件中的至少一种:

(1)用户对话文本中存在地址;

(2)用户地址连续;

(3)要求用户地址达到某个具体的地址级别;

(4)若所需地址级别存在行政区划,则要求所需地址级别的行政区划唯一确定。

作为可选的实施方式,根据不满足的情况构建所需向用户提问的问题,包括:

步骤5.1:如果没有获取到地址要素信息,直接反馈“没有获取到地址信息”;

步骤5.2:如果没有获取到所需级别的信息,根据未获取到的地址级别进行提问;

步骤5.3:如果地址存在不连续,则选择最长不连续片段中较高的地址级别进行提问;

步骤5.4:如果地址存在行政区划歧义,则根据歧义的数量产生提问问题。

下面我们结合附图1、2,对本发明前述实施例的方法的各个步骤进行进一步阐述与说明。

在图1所示的示例中,本方案的面向人机对话的地址要素解析方法包括以下的流程:

1.从背景信息中获取已知地址信息,获取用户的回复文本。

2.从用户的回复文本中解析地址,得到各个地址要素。

这一地址解析步骤包括四个分步骤,分别为:首先,从用户的回复文本中获取待处理地址文本;其次,对待处理地址文本进行切分,并标注初步的地址角色,得到地址要素列表;然后,使用规则识别未识别的地址要素,最后,组合各地址要素,去除无效的地址要素,并调整各个地址要素最终的地址角色;得到地址要素列表。

3.将解析得到的地址要素与已知地址信息进行组合,得到地址对应的地址要素。

这一地址要素组合步骤包括四个分步骤,分别为:首先:将地址要素与具体的地址要素实体知识库中的地址进行链接,得到地址要素列表。接着,组合已知地址信息和地址要素,以得到完整的地址,然后,按顺序对相邻的地址要素进行过滤合并,最后,转换地址要素对应的词语为标准名称。

4.判断是否满足预设的条件;若满足条件则结束提问环节;

5.如果不满足,则根据不满足的情况构建所需的问题。

6.用当前地址信息更新背景地址信息。

地址要素解析是将用户会话中提到的地址按角色拆分为多个地址要素,并与实体知识库中建立的行政区划关联起来的过程。

根据覆盖范围由大到小,地址存在着不同的级别。

在一些实施例中,某些位于下级的地址级别同时存在不同的表达方式,一个级别的一种表达方式就是地址要素的一个地址角色。

地址要素由地址角色,该角色对应的词语或短语和地址要素知识库中对应的地址知识(如果存在)构成。

一个完整地址由许多不同等级的地址要素组合而成。

如下表1的地址要素角色定义,是本发明的示例中使用的地址角色划分的方式。应当理解,地址级别的数值越大,地址级别越低。

表1地址要素角色定义

以“XX省XX市XX区XX路XX号XX产业园XX幢X楼XX超市”的完整地址为例,经过地址要素解析后,一种形式是把地址转换为“’province’:’XX省’,’city’:’XX市’,’district’:’XX区’,’road’:’XX路’,‘road_no‘:’XX号’,‘poi‘:’XX产业园’,‘house_no‘:’XX幢’,‘floor‘:’X楼’,‘name‘:’XX超市’”这样的结构化形式,同时,”province”,”city”,”district”三个角色关联到知识库中已有的具体行政区划。

面向人机对话的地址要素解析,还需要完成组合背景地址信息,判断是否符合条件的过程。

以下面的对话为例:

系统:“请问您的地址是哪里呢?要求具体到小区。”

用户:“应该是鼓楼区宁海路18号”

系统:“您所说的‘鼓楼区’属于哪一个城市?”

用户:“南京吧”

系统:“好的,地址是江苏省南京市鼓楼区宁海路18号。”

在对话中,对话系统判断用户给出的地址存在歧义并进行了提问,之后根据信息消除了歧义,并确认回答有效。结合上述会话,其中包括了两次执行本方法的过程。

为了实现这样的目的,本实施例提出的地址要素解析方法包含如下的5个步骤实现。

步骤1:从背景信息中获取已知地址信息,获取用户的回复文本。

已知地址信息是当前对话中作为背景信息的地址信息,在本发明的实施例中,包括以下三种形式获取:

一是对话场景预设的背景地址信息,例如上海市提供的本地服务可以假定当前地址位于上海市,或假定位于中国境内,预设背景地址应当是已知的行政区划实体;

二是用户的基本地址信息。例如通过基于IP地址数据库,将用户的IP地址信息转换为大致的行政区划实体,如以所在城市为基准,还可以在用户授权的情况下,通过基于无线网络、运营商基站、卫星定位等地理位置信息转换为已知的行政区划实体;

三是用户在对话中提到的地址信息,这些地址已经经过解析,以结构化的形式存储在对话上下文中。

应当理解,当用户上一次回答的信息不能满足要求时,该地址信息才会存在。

当不存在对话中提到的地址信息时,已知地址信息才会使用对话场景预设的背景地址信息或用户的基本地址信息。

行政区划实体(GPE)是层级行政区划中的一个节点,每个行政区划实体至少包含区划名称,所属等级,所属层级关系信息,还可以包含该行政区划的别名、曾用名,旧隶属关系等辅助信息。还可以包括定位、轮廓等附加信息。所有的行政区划实体构成行政区划知识库。

行政区划知识库必须规定所使用的地址级别,以符合使用地区的要求。

以中国为例,行政区划可以分为“国家、省(自治区、直辖市、特别行政区)、地市(设区市、地区、自治州、盟)、区县(区、未设区市、县、旗)、乡镇街道(乡、镇、街道、民族乡、苏木)”五级行政区划。行政区划知识库中的行政区划实体必须位于其中的某一级别上,并上溯至最高一级。

用户的回复文本是用户键盘输入的文本字符串、手写输入的文本字符串或语音识别方式输入的文本字符串。

用户回复中的信息应当包含有效的地址信息,人机对话系统可通过本发明的方法判断是否包含有效地址信息。

步骤2:从用户的回复文本中解析地址,得到各个用户地址要素。

本步骤对“XX省XX市XX区XX路XX号XX产业园XX幢X楼XX超市”这样的地址形式进行解析,拆分属于各个地址要素的词语或短语,并确定它们的地址角色。

地址要素包含一个地址角色,以及表示该类型地址的的一个词语或短语。

作为可选的实施方式,本发明的实施例中,解析回复文本获得用户地址要素的过程包括:

步骤2.1:从用户的回复文本中获取待处理地址文本;

步骤2.2:对待处理地址文本进行切分,并标注初步的地址角色,得到地址要素列表;

步骤2.3:组合各地址要素,去除无效的地址要素,并调整各个地址要素最终的地址角色,得到地址要素列表。

下面我们结合具体的示例进行进一步说明。

步骤2.1:从用户的回复文本中获取待处理地址文本。

用户的回复文本中可能包含地址,也可能包含其它非地址的字符。因此需要提取文本中的地址文本。例如,“应该是鼓楼区宁海路18号”中地址字符串为“鼓楼区宁海路18号”。

在本发明的实施例中,从用户的回复文本中获取待处理地址文本可以采用基于序列标注的实体识别模型获取地址,该模块为预训练的实体识别模型。

作为可选的使用序列标注模型识别地址的一种方案,包括:

首先,对用户回复文本进行分词和词性标注处理;

接着,将文本的分词、词性标注信息转换为字符的特征;

之后,将字符和字符特征送入条件随机场或基于神经网络的条件随机场模型,得到每个字符的标签;

最后,通过状态机解析标签序列,即可获取待处理地址文本。

在序列标注模型中,可以按照“B、I、E、S、O”的方式对地址的字符进行标注。

其中,B表示地址要素的开头字符,I表示地址的中间字符,E表示地址的结尾字符,S表示只有一个字符的地址,O表示不属于任何一个地址的字符。

通过这一标注模式,以将地址转换为字符标签的序列。

例如,“应该是鼓楼区宁海路18号”可以标注为如表2所示的结果。

表2地址抽取标注示例

这样,对于每一个地址,除了当一个地址只有一个字符时用S表示以外,其他模式中,一个地址的标签一定以B开头,以E结尾,B和E之间只可以有I,因此,标记模式只会是S、BE、BIE、BIIE、BIIIE等等。

序列标注模型会学习到这样的表达模式,即得到标记之间的依赖关系。当序列标注模型利用这种依赖关系预测用户回复文本对应的标记时,不应出现E标签后紧接着出现I标签的情况。

实体识别模型可以利用与表2标注数据具有相同格式的人工标注的文本数据训练得到。

步骤2.2:对待处理地址文本进行切分,并标注初步的地址角色,得到地址要素列表。

本步骤输入为待处理地址文本,输出为地址要素列表,每个地址要素都是从待处理地址文本中切分得到,包含一个初步的角色。

在本发明的示例中,采用地址要素解析模型切分,并标注初步地址要素。其中,该地址要素解析模型可以采用预训练模型。

模型识别的标签包括以下字段:国家、省、地市、区县、开发区、乡镇街道、社区、村组、道路名、道路门牌号、兴趣地点、楼栋名、单元号、楼层号、房间号。

作为可选的示例,地址要素解析模型可以采用序列标注模型,也可以对每个角色所对应片段的开始位置和结束位置进行预测。

本例中仍以序列标注模型为例,称为地址要素解析序列标注模型。

当采用序列标注模型时,其实现步骤与步骤2.1类似。对待处理地址文本中的每个字符或词语片段标注对应的标签。

以“江苏南京鼓楼区山西路67号世贸中心A座1202号云朵商贸”为例,每个字符对应的标签须列为“B-province、E-province、B-city、E-city、B-district、I-district、E-district、B-road、I-road、E-road、B-road_no、I-road_no、E-road_no、B-poi、I-poi、I-poi、E-poi、B-house_no、E--house_no、B-room_no、I-room_no、I-room_no、I-room_no、E-room_no、B-name、I-name、I-name、E-name”。或将该文本切分为片段序列“江/苏/南/京/鼓/楼/区/山/西/路/67/号/世/贸/中/心/A/座/1202/云/朵/商/贸/”。对应的标签须列为“B-province、E-province、B-city、E-city、B-district、I-district、E-district、B-road、I-road、E-road、B-road_no、E-road_no、B-poi、I-poi、I-poi、E-poi、B-house_no、E--house_no、S-room_no、B-name、I-name、I-name、E-name”。

其中,每个标签连字符“-”前面为“B、I、E、S、O”的意义与步骤2.1中的相同,连字符“-”后面为对应角色的标签,本步骤中称为标签后部。

在地址要素解析序列标注模型对待处理文本预测出标签序列后,通过解码步骤可以获得每个字的标签。

此时符合标签规律(单独的S,或者以B开头,以E结尾,B和E之间只可以有I),且标签后部相同的字符序列构成地址要素的字符串,标签后部构成该地址要素对应的角色。

与前述2.1的模型训练类似地,地址要素解析序列标注模型可以利用与本步骤中标注数据具有相同格式的人工标注的文本数据训练得到。

步骤2.3:组合各地址要素,去除无效的地址要素,并调整各个地址要素最终的地址角色。得到地址要素列表。

本步骤利用角色转换规则和全局约束,进一步调整地址要素的角色,

角色转换规则是一系列预先定义的规则模板。一旦地址中有一部分匹配了其中的“匹配规则”,就按照处理方式中的规则执行。下表列出了一些规则模板的示例:

例如,规则模板“[道路1/road][与][道路2/road][交叉口]”,该规则模板对应规则为,如果连续的各个词语和词语相应地址要素的角色与规则匹配,如“博爱路/和/太平南路/交叉口”,则将“道路2”更改为“子道路”。

所述全局约束是指对于地址要素的全局角色进行删除、变换的约束规则;

在最终执行完成角色转换规则和全局约束的转换后,按照地址级别从高到低,对地址要素的角色进行顺序组合调整。

在可选的示例中,全局约束的规则包含以下几种:

1.不受模板约束的行政区划等级的地址要素,各级别只保留最后一个。

例如“浙江省杭州市浙江省杭州市西湖区”中,可能由于地址拼合或者重复,“杭州市”出现了两次。经过处理后,重复的“浙江省”“杭州市”仅保留一个。这一步骤保证在合适的地址信息中,不包含无效的信息;

2.仅第一次出现的“兴趣地点”元素为“兴趣地点”元素,其它元素调整为“自行去地点”,如果“兴趣地点”元素在“楼层号”、“单元号”或“房间号”之后。则角色变为“商铺名”。

步骤3.将解析得到的地址要素列表与已知地址信息进行组合,得到地址要素列表。

在本步骤中,利用已知地址信息补全地址要素列表的信息,通过将地址要素关联到地址要素实体知识库,尽可能使地址与知识库匹配,为判断地址信息是否符合要求提供依据。

作为可选的实施例,地址要素的组合具体包含以下步骤:

步骤3.1:将地址要素与具体的地址要素实体知识库中的地址进行链接,得到用户地址要素列表;

步骤3.2:组合已知地址信息和用户地址要素列表中的当前用户地址要素,得到完整的地址;

步骤3.3:按顺序对相邻的地址要素进行过滤合并;

步骤3.4:对于过滤合并后的地址要素,转换对应的词语为标准名称。

下面,我们结合具体的示例进行进一步说明。

步骤3.1:将地址要素与具体的地址要素实体知识库中的地址进行链接,得到地址要素列表。

这一步利用地址要素实体知识库,对地址数据进行进一步的规范化。

步骤3.1.1:对地址要素列表中不小于地址要素实体知识库最低级别的各个地址要素,分别在地址要素实体知识库中进行查询,得到每个地址要素对应的地址要素实体列表。

地址要素实体知识库覆盖的地址级别大于或等于行政区划知识库,例如可以在行政区划知识库基础上包含道路等数据。这里使用行政区划知识库作为地址要素实体知识库,一个词语可能对应了多个地址要素实体(以下简称“实体”)。例如,词语“鼓楼区”可能对应了“中国.江苏省.南京市.鼓楼区”“中国.江苏省.徐州市.鼓楼区”“中国.河南省.开封市.鼓楼区”“中国.福建省.福州市.鼓楼区”四个具体的地址要素实体,它们构成地址要素实体列表(以下简称“实体列表”)。

步骤3.1.2:通过别名匹配地址要素实体。

如果实体包含该行政区划的别名、旧名称,旧隶属关系等辅助信息,则可以根据别名、旧名称建立词语到实体的索引。查询该索引获取地址要素对应的实体列表。

步骤3.1.3:利用近似匹配索引,对未获得匹配的地址要素进行匹配。

近似匹配使用语音相似度或字形相似度匹配,对地址要素中的每个字,尝试匹配读音索引或者字型索引、找到相似字。将所有能够匹配的地址要素实体收集起来构建为实体列表。

作为一个实施例的读音近似匹配方法,首先将地址要素文本转换为拼音映射串,将地址索引中的每个地址要素,以无声调拼音为状态,构造为如图3所示的状态机;然后用地址要素的拼音映射串依次匹配状态机中的状态,匹配成功则识别成功。

经过3.1.1到3.1.3的各个步骤后,最终得到的对应的地址要素列表,其中,不小于地址要素实体知识库最低级别的每个地址要素,均对应一个地址要素实体列表。

如图2中的步骤201所示,图2展示了用户会话文本“南京的”经过解析后的结果。

步骤3.2:组合已知地址信息和当前用户地址要素,以得到完整的地址。

根据已知地址信息的不同,这一部又分为两种情况。

(1)如果已知地址信息是单一的行政区划,则根据以下的逻辑判断补全:

步骤3.2.1.1:如果当前地址信息的最高级别高于或等于已知地址信息的最低级别,且对应单个地址要素实体,则直接覆盖已知地址信息;

步骤3.2.1.2:如果当前地址信息的最高级别高于或等于已知地址信息的最低级别,且对应多个地址要素实体,则使用已知地址信息的高于当前地址信息的一级行政区划对当前地址信息的最高一级地址要素实体进行合并筛选操作,得到合并筛选的实体列表;如果合并筛选的实体列表不为空,则将该结果作为对应的实体列表;否则保持不变;

步骤3.2.1.3:如果当前地址信息的最高级别小于已知地址信息的最低级别,则尝试使用已知地址信息与当前地址信息的最高级别对应的实体执行合并筛选操作,得到合并筛选的实体列表;如果合并筛选的实体列表不为空,则将该结果作为对应的实体列表。否则保持不变;

(2)如果已知地址信息是经过解析得到的地址,使用当前地址要素按照级别覆盖现有已知地址信息的地址要素,最后检查保留的已知地址要素是否与用户地址要素冲突,包括:

步骤3.2.2.1:如果当前地址要素最高级别小于地址要素实体知识库扥最低级别,则认为兼容;

步骤3.2.2.2:如果当前地址要素最高级别小于等于已知地址信息最低级别,对“已知地址信息”和“当前地址要素”的最高一级执行“合并筛选”操作,如果合并结果不为空,则两者兼容;

步骤3.2.2.3:如果已知地址信息最高级别小于当前地址要素最低级别,对“当前地址要素”和“已知地址信息”的最高一级执行“合并筛选”操作,如果合并结果不为空,则两者兼容;

步骤3.2.2.4:如果不兼容,则合并失败;记录合并失败标志,并只使用当前地址信息。

其中,上述步骤中涉及“合并筛选”操作。作为示例的一种合并筛选方法的过程包括:

a)依次选取高级别地址要素对应的地址要素实体GPE

b)依次选取低级别地址要素对应的地址要素实体GPE

c)如果GPE

d)循环完毕,将地址要素实体合并列表作为两个地址要素合并后的行政区划。

这里举以下不同的例子来说明以上情况。

已知地址信息是单一的行政区划时分为三种情况:

例如,已知地址信息是“中国.江苏省.南京市”,待处理地址文本为“福州市鼓楼区xx路xx商厦”,根据步骤3.2.1.1,“中国.福建省.福州市”级别等于“中国.江苏省.南京市”。忽略已知地址信息。

例如已知地址信息是“中国.江苏省.南京市.江宁区”,待处理地址文本为“栖霞区xx路xx商厦”,当前地址信息最高级别“district;’栖霞区’”对应的实体多于一个,根据步骤3.2.1.2,需要使用已知地址信息级别高于“district”的实体“中国.江苏省.南京市”。与“栖霞区”对应的实体列表执行“合并筛选”操作,其结果为仅包含“中国.江苏省.南京市.栖霞区”的合并结果实体列表。由于该列表非空,该合并结果实体列表作为“栖霞区”对应的实体列表。

例如已知地址信息是“中国.江苏省.南京市”,若待处理地址文本为“栖霞区xx街道xx路xx小区”,由于地址要素实体知识库中“栖霞区”多于一个,根据步骤3.2.1.3,执行“合并筛选”操作,结果为一个实体“中国.江苏省.南京市.栖霞区”,作为地址要素“district:’栖霞区’”对应的地址要素实体。再比如待处理地址文本为“武进区xx街道xx路xx小区”,地址要素实体知识库中“武进区”有且只有一个,根据步骤3.2.1.3,执行“合并筛选”操作,结果为空,则仍使用原有的地址要素“中国.江苏省.常州市.武进区”。

另一类情况是已知地址信息是用户上文的文本,例如在“信息补充”场景中,已知地址信息为“district:’鼓楼区’,road:’宁海路’,road_no:’18号’”,用户地址要素为“city:’南京’”,对应的地址要素列表为“江苏省南京市”,最低级别为2,根据规则3.2.2,最低级别大于已知地址信息最高级别3,则将“南京”和对应的地址要素实体信息填入已知地址信息对应的槽位。变为“city:’南京’,district:’鼓楼区’,road:’宁海路’,road_no:’18号’”,如图2中的步骤202所示。

步骤3.3:按顺序对相邻的地址要素进行过滤合并。

高级别的地址要素的歧义更少,可以筛选下级地址要素的行政区划。因此这一步骤在整合地址要素对应实体数据的同时,可以消除对应地址要素实体的歧义。

这一步中,“过滤合并”操作和步骤3.2.1中的“过滤合并”操作是一致的。

结合图2的步骤203,以“’city’:’南京’,’district’:’鼓楼区’,’road’:’宁海路’,’road_no’:’18号’”为例,经过这个步骤后,地址要素“鼓楼区”的地址要素实体列表中仅有“中国.江苏省.南京市.鼓楼区”是“中国.江苏省.南京市”的下级地址要素实体,因此经过本步骤后,“鼓楼区”对应的地址要素实体列表仅包括“中国.江苏省.南京市.鼓楼区”一个地址要素实体。

步骤3.4:转换地址要素对应的词语为标准名称。

这一步利用匹配且唯一的地址要素实体,将地址中的错别字或别名转换为地址要素实体中标准的名称,并根据地址要素实体的上层信息完成补全操作。

例如用户地址要素“’city:’莱芜’,’district’:’莱城区’”,由于2019年1月,山东省调整济南市莱芜市行政区划,撤销地级莱芜市,将其所辖区域划归济南市管辖。“莱城区”根据同义词匹配,对应到“中国.山东省.济南市.莱芜区”区划,据此在输出时,将原始地址中“’city’:’莱芜’,district:’莱城区’”转换并补齐上层,变换为“’country’:’中国’,’province’:’山东省’,’city’:’济南市’,’district’:’莱芜区’”。

步骤4:判断获取的地址要素列表是否满足预设的条件。

作为可选的示例,预设条件包括4.1-4.4四种情况。

4.1:用户的对话文本中存在地址。

如果地址要素列表为空,则认为地址解析失败,否则成功。

4.2:用户的地址较为连续。

在经过推理后,完整地址应当对应到行政区划,在行政区划之下,连续的空白地址级别不超过阈值。

作为例子的角色体系中,地址级别6的角色为“道路”时,连续的空白地址级别应小于3级。其它时候,连续的空白地址级别应小于2级。

例如:“’city’:’南京市’,’district’:’鼓楼区’,’road’:’宁海路’,’road_no’:’18号’”中地址级别6的角色为“道路”,从最大等级到最小等级中缺少等级4、5,满足条件。

4.3:要求地址达到某个具体的地址级别。

地址要素列表中最低地址级别不高于问题中预先设定的地址级别,且问题中涉及的地址级别不为空。

例如询问“所在区县”时,地址“’province’:’江苏省’,’city’:’南京市’”在地址等级3中内容为空,不符合要求。

4.4:若所需地址级别存在行政区划,则要求所需地址级别的行政区划唯一确定。

例如询问某一具体的地址时,如果该级别及上级的地址要素仍然对应于多个行政区划知识,则认为存在歧义,不符合要求。

步骤5:根据预设条件不满足的情况构建所需继续向用户提问的问题。

不满足的情况主要包括“没有获取到地址要素信息”“没有获取到所需级别的信息”“地址存在较大的不连续”以及“行政区划存在歧义”四种情况。

步骤5.1:如果没有获取到地址要素信息,直接反馈“没有获取到地址信息”;

步骤5.2:如果没有获取到所需级别的信息,根据未获取到的地址级别,进行提问;

具体操作时,可以为每个地址级别预备一个问题。例如:“能够告知正确的门牌号码、小区、园区名或招牌?”

步骤5.3:如果地址存在较大的不连续,则需要选择最长不连续片段中较高的地址级别进行提问;

步骤5.4:如果地址存在行政区划歧义,则根据歧义的数量产生问题。

如果存在两个候选的行政区划,则根据两个行政区划存在差异的最高级别产生问题。

如果存在多个候选的行政区划,则可以产生单项选择、多个是否问题或问答形式的问题,其中问答形式的问题包含如下的流程:

5.4.1:按地址级别从高到低,遍历歧义地址要素实体列表中各个实体的地址级别,

5.4.2:获取各个级别所对应的角色,统计不重复的数量;

5.4.3:如果不重复的数量等于歧义地址要素实体列表中元素的数量,则选取该级别作为提问级别,否则遍历下一级别,返回5.4.1。

仍以“’district’:’鼓楼区’”为例,歧义地址要素实体列表中存在4个“鼓楼区”,根据5.4.1从“国家”级别开始遍历地址实体,此时不重复实体的只有一个“中国”,继续遍历下一级;在“省”级别得到3个实体“中国.福建省”、“中国.江苏省”、“中国.河南省”,小于歧义地址要素实体列表中实体的数量,继续遍历下一级;“地市”级别有4个实体,因此提问级别为“地市”级别。最终用模板回复“您所说的‘鼓楼区’属于哪一个城市?”。

步骤6:用当前地址信息更新背景地址信息。

至此,完成该实施例的地址要素解析过程。

结合图1以及以上实施例的地址要素解析方法,根据本发明的实施例还提出一种计算机系统,包括:一个或多个处理器以及存储器。存储器用来存储可被操作的指令,指令在被一个或多个处理器执行时,实现前述实施例的面向人机对话的地址要素解析方法的过程。

结合图1以及以上实施例的地址要素解析方法,根据本发明的实施例还提出一种存储计算机程序的计算机可读取介质,前述的计算机程序包括能被一个或多个计算机执行的指令,指令在被一个或多个计算机执行时,实现前述实施例的面向人机对话的地址要素解析方法的过程。

虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号