掌桥专利:专业的专利平台
掌桥专利
首页

一种差错自适应的深度学习地址语义匹配方法及系统

文献发布时间:2023-06-19 18:37:28


一种差错自适应的深度学习地址语义匹配方法及系统

技术领域

本发明属于自然语言处理领域,具体涉及一种差错自适应的深度学习地址语义匹配方法及系统。

背景技术

在真实应用场景中,大量地址数据收集自互联网并存储于数据库中。尽管在数据写入数据库前已经过数据清洗操作,但仍不可避免的存在部分地址数据因无法被清洗规则覆盖而未被清洗情况的发生,进而导致该类地址数据存在数据域存储错位的情况。上述问题导致数据库中的地址数据存在部分难以提前预知的数据存储错误。

而标准地址数据一般以半结构化的形式进行存储,例如:一条地址数据中,存在省,市,区这样每列单独存储的结构化数据;亦存在由乡、村、镇、街道和门牌号等拼接存储的无结构化数据。

地址数据的存储差错主要发生在数据的结构化部分(比如“市”一列中,存储有“村”一级的内容),在面向数据库查询地址时,数据库查询引擎主要依靠地址数据的结构化部分(查询速度最快)进行数据筛选和查询。而地址数据的无结构部分仅提供辅助查询功能(利用无结构部分次数越多,查询速度越慢)。一旦地址结构化部分存在存储错误,基于地址数据库查询实现地址匹配的模型将难以在数据库中正确检索到该条数据。

面向数据库查询实现匹配的模型可以使用递归算法来穷举所有的地址查询语句,以此最大化检索到正确数据的概率,但是上述行为在实际应用中将伴随着难以承受的时间耗费成本,同时多次IO将对数据库造成访问读写压力。若地址数据库采用分布式架构,还将同时带来大量网络带宽上的峰值压力。

由于存在上述难点,现有地址匹配更偏向于使用文本对来完成地址匹配,但使用文本对方法存在以下客观缺点,比如:1.基于文本对匹配的方式通过比较全局地址语义来判断地址文本间是否匹配,上述方式导致模型难以理解语义间的细微差异,在困难负样例情境下将产生大量的匹配错误;2.基于文本对匹配的方式对文本的长度较为敏感,难以正确判断长短相差较大的地址文本间是否匹配;3.相关地址匹配研究更多关注于如何提升文本对的匹配准确度,忽略了文本对的构建方法,降低了模型实际部署应用的可行性;4.文本对匹配方法强依赖于前端的词嵌入模型,限制了相关模型的可迁移性并加大了相应模型的更新难度;5.文本对匹配方法的整体匹配流程缺少可解释性。上述缺点使基于文本对的方法难以完成模型的实际部署和真实应用。

发明内容

针对现有技术存在的不足,本发明提出了一种差错自适应的深度学习地址语义匹配方法及系统,该方法包括:用户将非标地址文本输入到已训练好的基于深度学习的地址语义匹配模型中,得到非标地址对应的标准地址匹配结果;

训练好的基于深度学习的地址语义匹配模型对非标地址文本进行处理的过程包括:

S1:采用BERT模型对非标地址文本进行文本编码,得到非标地址的分词结果和词嵌入向量;

S2:将分词结果和词嵌入向量同时输入到Bi-LSTM模型和Transformer模型中,得到地址关键元素信息以及地址关键元素信息是否可用的判别结果;

S3:采用predict algorithm算法,根据可用的地址关键元素信息构建查询语句进行地址查询,得到非标准地址文本对应的标准地址匹配结果。

优选的,得到地址关键元素信息的过程包括:Bi-LSTM模型根据分词结果和词嵌入向量判断非标地址文本中各单词是否为地址关键元素,若是,则判断该地址关键元素的父类类别,得到地址关键元素信息即地址关键元素及其对应的父类类别。

优选的,地址关键元素是否可用的判断过程包括:Transformer模型根据数据库当前数据存储状态、BERT模型输出的分词结果和词嵌入向量,判断地址关键元素信息是否可用于构建地址查询语句。

优选的,predict algorithm算法进行地址查询的过程包括:

predict algorithm算法根据可用的地址关键元素信息构建一条地址查询语句,地址查询语句中地址关键元素的位置由Bi-LSTM模型输出的地址关键元素父类类别决定;

查询记忆池中是否存在与地址查询语句对应的标准地址匹配结果,若存在,则直接返回标准地址匹配结果,否则,使用地址查询语句查询数据库,若查询到标准地址,则返回该结果并将其写入记忆池中以备后续查询使用。

优选的,对基于深度学习的地址语义匹配模型进行训练的过程包括:

获取带标签的地址文本训练数据,将地址文本训练数据输入到BERT模型中,得到地址文本的分词结果和词嵌入向量;

将分词结果和词嵌入向量同时输入到Bi-LSTM模型和Transformer模型中,得到地址关键元素信息和地址关键元素信息是否可用的判别结果;

采用train algorithm算法,根据可用的地址关键元素信息递归构建地址查询语句进行地址查询,得到地址文本对应的标准地址匹配结果;

根据标准地址匹配结果和标签调整模型参数,得到训练好的基于深度学习的地址语义匹配模型。

进一步的,采用train algorithm算法构建地址查询语句进行地址查询的过程包括:train algorithm算法通过递归的方法逐步在地址查询语句中追加地址关键元素,从而不断缩小地址查询的范围;当查询结果中仅存在一条标准地址数据,该标准地址即为地址文本对应的标准地址匹配结果。

进一步的,对基于深度学习的地址语义匹配模型进行训练的过程还包括:trainalgorithm算法得到地址文本对应的标准地址匹配结果后,向Transformer模型返回所使用到的地址关键元素,同时把该查询结果即标准地址匹配结果存入记忆池中,Transformer模型根据返回的地址关键元素纠正其自身关于地址关键元素信息是否可用的判别结果,并根据纠正后的判断结果调整自身参数。

一种差错自适应的深度学习地址语义匹配系统,包括:基于BERT的地址文本输入模块、Bi-LSTM模块、Transformer模块和地址匹配模块;

所述基于BERT的地址文本输入模块用于对地址文本进行文本编码,得到地址文本的分词结果和词嵌入向量;

所述Bi-LSTM模块用于根据地址文本的分词结果和词嵌入向量获取地址关键元素信息以及决定查询语句中地址关键元素的位置;

所述Transformer模块用于根据地址文本的分词结果和词嵌入向量判断地址关键元素信息是否可用于构建地址查询语句;

所述地址匹配模块用于根据Bi-LSTM模块和Transformer模块输出信息构建地址查询语句并进行地址查询,输出地址文本的标准地址匹配结果。

本发明的有益效果为:1.通过使用地址元素逐步查询,可具体甄别地址语义中的细微差异;2.通过从文本中抽取地址关键元素,使模型对数据长度脱敏;3.面向数据库查询时仅需使用非标准地址,无需耗费大量精力进行文本对构建工作;4.整合词嵌入模型,进一步提高模型的内聚度;5.模型通过训练已获知数据库内部差错情况,可避免触及数据库错误而导致地址匹配失败;6.模型借助数据库缓存技术,每条相同的地址查询语句仅进行一次数据库查询操作,进而大幅减少地址语义匹配模型的预测耗时,提高模型部署性能。

附图说明

图1为本发明中基于深度学习的地址语义匹配模型在应用时进行地址语义匹配的结构示意图;

图2为本发明中基于深度学习的地址语义匹配模型在训练时进行地址语义匹配的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提出了一种差错自适应的深度学习地址语义匹配方法及系统,如图1所示,所述方法包括以下内容:用户将非标地址文本输入到已训练好的基于深度学习的地址语义匹配模型中,得到非标地址对应的标准地址匹配结果;本发明设计的深度学习地址语义匹配模型包括三个层次:模型层、算法层和数据层;模型层包含BERT模型(预训练的语言表征模型)、Bi-LSTM模型(双向长短期记忆网络模型)和Transformer模型;算法层包括trainalgorithm算法和predict algorithm算法,其中,train algorithm算法用于训练深度学习地址语义匹配模型,predict algorithm算法用于查询用户输入非标地址文本的标准地址;数据层包括数据库和记忆池,其中,数据库开放对外查询接口,存储有待查询匹配的标准地址数据,而记忆池用于缓存来自数据库的查询结果,通过减少数据库IO次数来提高模型推理匹配速度。

训练好的基于深度学习的地址语义匹配模型对非标地址文本进行处理的过程包括:

S1:采用BERT模型对非标地址文本进行处理,得到非标地址的分词结果和词嵌入向量;

例如,输入非标地址文本为“我在重庆市的南岸区,南山上面的崇文路1号这里”,BERT模型对非标地址文本进行处理,输出分词结果及相应的词嵌入向量;具体的,BERT模型数据变化如表1所示:

表1BERT模型数据变化示例

S2:将分词结果和词嵌入向量同时输入到Bi-LSTM模型和Transformer模型中,得到地址关键元素信息以及地址关键元素信息是否可用的判别结果;

Bi-LSTM用于提供非标地址中的地址关键元素,Transformer用于判断哪些地址关键元素可用于构造数据库查询语句;具体的:将分词结果和词嵌入向量输入到Bi-LSTM模型中,Bi-LSTM模型根据分词结果和词嵌入向量判断非标地址文本中的单词是否为地址关键元素,若是,则判断该地址关键元素的父类类别,得到地址关键元素信息即地址关键元素和该地址关键元素的父类类别,如“南岸区”的父类类别的“区级”,在构建数据库查询语句时,train algorithm算法在递归构建查询语句时将优先选用在数据库中结构化存储的父类类别(如“省级”,“市级”,“区级”);而“崇文路”的父类是“道路级”,该父类类别在数据库中以无结构化方法存储,和“乡级”、“村级”和“镇级”等父类类别混合存储于一个数据域内,train algorithm算法将尽量避免首先使用这些无结构父类进行查询语句构建(依赖无结构化数据将拖慢查询速度)。而“重庆市”的父类既可以是“省级”也可以是“市级”,这取决于“重庆市”在数据库中是存储在省一级的数据域上还是市一级的数据域上;借助Bi-LSTM的RNN结构,Bi-LSTM可学得暗含于输入文本中的地址结构化信息,Bi-LSTM可在该地址结构信息的辅助下来进行地址元素识别。Bi-LSTM模型的输入输出如表2所示:

表2Bi-LSTM模型数据变化示例

在预测过程中,Transformer将给出地址关键元素是否可用于地址查询语句的构建。具体的:将分词结果和词嵌入向量输入到Transformer模型中,Transformer模型预测地址元素是否适用于当前数据库。Transformer模型的输入输出如表3所示。在表3中,假设“南岸区”在数据库中存在存储错误,即“南岸区”没有正确存储在对应的“区级”数据域中。此时不管predict algorithm还是train algorithm算法,若都把“南岸区”放置在地址查询语句的“区级”部分进行地址查询,则上述查询必定无法正确匹配到标准地址。所以Transformer模型将阻止类似存储域错误的数据进入后续的查询语句构造流程中。而类似“我的”,“的”等单词并非地址关键词,Bi-LSTM亦将把类似词语排除在地址关键词预测结果外。

表3Transformer模型数据变化示例

S3:采用predict algorithm算法,根据可用的地址关键元素信息构建查询语句进行地址查询,得到非标准地址文本对应的标准地址匹配结果。

predict algorithm算法根据可用的地址关键元素信息构建一条地址查询语句,地址查询语句中地址关键元素的位置由Bi-LSTM模型输出的地址关键元素父类类别决定;

首先查询记忆池中是否存在相同的地址查询语句,若存在,则将该地址查询语句查询到的标准地址信息返回给用户;否则,根据地址查询语句访问数据库,查询数据库中与查询语句对应的标准地址信息,若查询到标准地址,则返回该结果并将查询语句以及查询结果构建为键值对后存入记忆池中。

记忆池中若已存在查询语句,则仅需进行一次数据库检索操作,其可大幅减少数据库查询耗时以及数据库IO压力。

如图2所示,对基于深度学习的地址语义匹配模型进行训练的过程包括以下内容:

获取带序列标注标签的地址文本训练数据,将地址文本训练数据输入到BERT模型中,得到地址文本的分词结果和词嵌入向量;

将分词结果和词嵌入向量同时输入到Bi-LSTM模型和Transformer模型中,得到地址关键元素信息和地址关键元素信息是否可用的判别结果;

采用train algorithm算法,根据可用的地址关键元素信息递归构建地址查询语句进行地址查询,得到非标地址文本对应的数据库标准地址匹配结果;

根据标准地址语匹配结果和标签调整模型参数,得到训练好的基于深度学习的地址语义匹配模型。

采用train algorithm算法查询地址的过程包括:

train algorithm算法使用递归的方式逐步向地址查询语句模型追加可用的地址关键元素,每次递归后都进行数据库查询,从而不断缩小地址查询的范围,以此来完成非标准地址与标准地址的匹配;当查询结果中仅存在一条标准地址数据,该标准地址即为地址文本对应的标准地址匹配结果;具体的:

以递归过程中的第i条地址查询语句为例,train algorithm算法首先在记忆池中查询是否存在相同的地址查询语句,若存在,则直接返回第i条地址查询语句对应的标准地址数据以及构建出第i条地址查询语句的关键地址元素。若该地址查询语句在记忆池中不存在,则使用该语句进行数据库查询,若该语句查询到单条标准地址,该标准地址即为地址文本对应的标准地址匹配结果(可能不正确);当前标准地址和当前非标地址的经纬度相同时,则表示查询成功(匹配结果正确),train algorithm算法将地址查询语句以及其对应的单条标准地址构建键值对后存入记忆池中。若已递归完所有可用地址元素,此时还没有查询到标准地址匹配结果,则表示地址匹配失败。

在train algorithm算法的递归过程中,算法会优先选择结构化存储的地址元素来构建地址查询语句(如父类类别为“省级”、“市级”和“区级”的地址元素),从而减少数据库查询耗时。在进行记忆池写入时,可设定记忆池中key的过期时间,以此保证记忆池中保存有当前epoch内的热点数据。每一条查询语句的查询结果都会优先存入记忆池中;在训练的第一个周期(epoch)中,train algorithm算法不会访问记忆池,因为此时的记忆池中缺失大量原始数据。随后的epoch中,由于记忆池中已存有大量查询键值对数据,trainalgorithm算法优先访问记忆池,如果记忆池缓存命中,则直接返回结果,而不再进行数据库查询,从而避免训练过程中频繁进行数据库IO而带来的额外时间成本。

基于深度学习的地址语义匹配模型进行训练的过程中,train algorithm算法得到地址文本对应的标准地址匹配结果后,向Transformer模型返回所使用到的地址关键元素,同时把该查询结果即标准地址匹配结果存入记忆池中,Transformer模型根据返回的地址关键元素纠正其自身关于地址关键元素信息是否可用的判别结果,并根据纠正后的判断结果调整自身参数。

本发明还提供一种差错自适应的深度学习地址语义匹配系统,该系统可用于执行上述的一种差错自适应的深度学习地址语义匹配方法,包括:基于BERT的地址文本输入模块、Bi-LSTM模块、Transformer模块和地址匹配模块;

所述基于BERT的地址文本输入模块用于对地址文本进行文本编码,得到地址文本的分词结果和词嵌入向量;

所述Bi-LSTM模块用于根据地址文本的分词结果和词嵌入向量获取地址关键元素信息以及决定查询语句中地址关键元素的位置;

所述Transformer模块用于根据地址文本的分词结果和词嵌入向量判断地址关键元素信息是否可用于构建地址查询语句;

所述地址匹配模块用于根据Bi-LSTM模块和Transformer模块输出信息构建地址查询语句并进行地址查询,输出地址文本的标准地址匹配结果。

相较于现有的技术方案,本发明可以缩小地址语义相似与地址匹配之间的差距。现有的文本匹配方法中基于文本对语义相似度来判断地址匹配与否的模型难以识别语义间的微小差异,而在模型训练过程中加入额外的地址元素结构信息的方法缺少可解释性和逻辑性。而本发明通过把完整语义解构成细粒度更小的地址元素,使用地址元素逐步构建地址查询语句,逐步缩小数据检索范围,可有效降低模型对困难负样例地址的误判率。同时通过模型直接面向数据库学习的方式,降低由于数据库内数据存储错误而导致的地址匹配失败情况的发生概率,保证模型对数据库的差错可以自适应进行调整。

本发明相较于现有的技术方案,对输入数据的长度是无限制的。现有技术方案不仅难以处理文本长度过短的地址数据(文本过短导致部分地址元素缺失,从而导致地址语义相似度降低),同时亦难以应对文本长度过长的地址数据(文本过长,其中掺杂大量无用单词,导致地址语义相似度降低)。本发明使用深度学习模型从地址文本中提取关键地址元素并基于地址元素完成地址匹配,因此长地址文本并不会对地址匹配造成影响。同时本发明面向数据库完成地址匹配,查询时以数据库结构化数据为主,无结构化数据作为辅助,因此短地址文本中部分地址缺失不会对地址匹配造成影响(例如查到‘市’和‘区’之后,该条地址缺少的‘省’一级单位可以直接从数据库的结构化数据中获得)。

本发明相较于现有的技术方案,无需进行耗时的文本对构建操作。现有技术方案需进行文本对的构建,且无论何种构建方法都将耗费大量时间和精力,而文本对构建质量好坏将直接影响后续模型的性能表现。同时现有技术方案更加关注匹配精度,而忽略了文本对构建方法的研究,上述因素导致现有模型的真实部署异常困难。本发明提出的方案面向数据库来完成地址匹配工作,无需进行文本对构建操作,仅需解析待匹配文本即可完成地址匹配,无疑拥有更优异的可部署性能。

以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120115636039