发明内容
本发明的目的在于解决现有技术中存在的问题,并提供一种基于AI的房屋地址匹配方法、存储介质及设备。
本发明所采用的具体技术方案如下:
第一方面,本发明提供了一种基于AI的房屋地址匹配方法,用于从经过规范化预处理的待搜索地址数据集中匹配得到与目标房屋地址同义的房屋地址数据,其包括:
S1、以第一房屋地址数据集作为训练数据,利用无监督相似度匹配算法对第一预训练模型BERT进行微调,得到编码模型;
S2、利用S1中的编码模型对目标房屋地址和待搜索地址数据集中的每一条待匹配地址分别进行编码,将每一条地址文本转换为高维向量;
S3、计算S2得到的目标房屋地址的高维向量与每一条待匹配地址的高维向量之间的相似度,并召回与目标房屋地址相似度最高的前K条待匹配地址;
S4、利用预先标注好同义地址对的第二房屋地址数据集作为训练数据,对基于第二预训练模型BERT的二分类文本模型进行微调,得到地址配对模型;
S5、利用地址配对模型对目标房屋地址与S3中召回的每一条待匹配地址是否属于同义地址进行分类,将与目标房屋地址同义的待匹配地址作为待验证地址;
S6、利用预先标注好不同层级实体的第三房屋地址数据集作为训练数据,对基于第三预训练模型BERT的命名实体识别模型进行微调,训练得到能够从地址文本中提取不同层级实体的地址实体提取模型;
S7、利用地址实体提取模型从目标房屋地址和每一条待验证地址中分别识别出不同层级的地址实体,然后对每一层级的地址实体进行二次验证,若待验证地址中每一层级的地址实体均与目标房屋地址对应层级的地址实体一致,才将待验证地址作为与目标房屋地址同义的配对地址。
作为上述第一方面的优选,所述的规范化预处理包括对地址文本进行空格和非汉字非数字字符的去除、全角半角一致性转换和地址实体别名一致性替换。
作为上述第一方面的优选,所述的无监督相似度匹配算法为SIMCSE算法。
作为上述第一方面的优选,所述的S3中,基于HNSW算法进行相似度最高的前K条待匹配地址的召回。
作为上述第一方面的优选,所述的地址文本中提取的不同层级的实体地址至少包括小区名、幢号、单元号和室号。
作为上述第一方面的优选,所述的二分类文本模型由第二预训练模型BERT和Softmax层组成。
作为上述第一方面的优选,所述的命名实体识别模型由第三预训练模型BERT和CRF层组成。
作为上述第一方面的优选,所述的第二房屋地址数据集中包含一系列表示同一个地址但采用了不同文字表示方式的同义地址对,所有同义地址对均带有标注标签;所述的第三房屋地址数据集中包含一系列地址文本,且每一条地址文本中不同层级的地址实体均带有人工标注标签。
第二方面,本发明提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,能实现如上述第一方面任一方案任一所述的基于AI的房屋地址匹配方法。
第三方面,本发明提供了一种基于AI的房屋地址匹配设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,能实现如上述第一方面任一方案任一所述的基于AI的房屋地址匹配方法。
本发明相对于现有技术而言,具有以下有益效果:
本发明从实际需求出发,为了尽可能的提高匹配准确率,采用BERT+二次验证的方法进行地址文本的匹配。与传统的匹配,以及单纯的使用BERT进行匹配的算法进行比较,本发明显著的提高了房屋地址文本匹配的准确率和效率。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制。本发明各个实施例中的技术特征在没有相互冲突的前提下,均可进行相应组合。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于区分描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
本发明中提供了一种基于AI的房屋地址匹配方法,该方法的作用是从经过规范化预处理的待搜索地址数据集中匹配得到与目标房屋地址同义的房屋地址数据。
其中,本发明中,两个房屋地址“同义”是指两个地址文本实际指向了同一个地址,但是文本中的文字表述形式是不同的。本发明的目的正是从大量的待搜索地址数据集中找到与目标房屋地址同义的所有房屋地址。
需注意的是,上述待搜索地址数据集是由大量的房屋地址文本数据组成的,这些房屋地址文本可能存在因输入不规范导致的各种形式不规范的问题,在用于后续检索之前需要对其进行规范化,使每一条房屋地址数据都以标准的纯文本形式地址存在。在本实施例中,规范化预处理可采用以下方式,包括:对地址文本进行空格和非汉字非数字字符的去除、全角半角一致性转换和地址实体别名一致性替换。当然,具体采用何种标准化处理,可根据每一个待搜索地址数据集中具体的文本状况而定。
如图1所示,在本发明的一个较佳实施例中,基于AI的房屋地址匹配方法包含S1~S7几大步骤,具体通过图2所示的流程来实现,下面对该实现过程进行详细描述:
S1、以第一房屋地址数据集作为训练数据,利用无监督相似度匹配算法对第一预训练模型BERT进行微调(finetune),使BERT模型能够更好地适用于房屋地址类型的文本数据集,微调完毕后得到编码模型。这样做不仅可以节约大量训练时间,而且有助于模型性能的提高。在本实施例中,可以采用SIMCSE算法作为无监督相似度匹配算法对预训练的BERT模型进行微调。第一房屋地址数据集中包含大量地址文本数据,该数据集可以采用前述经过规范化预处理的待搜索地址数据集来代替,也可以采用具有类似的房屋地址文本的其他数据集。
S2、利用S1中的编码模型对目标房屋地址和待搜索地址数据集中的每一条待匹配地址分别进行编码,将每一条地址文本转换为高维向量。
S3、计算S2得到的目标房屋地址的高维向量与每一条待匹配地址的高维向量之间的相似度,并召回与目标房屋地址相似度最高的前K条待匹配地址。在本实施例中,为了提高匹配效率,可基于HNSW算法进行相似度最高的前K条待匹配地址的召回。此处的K值可根据需要进行设置,一般设置为5~10。
S4、利用预先标注好同义地址对的第二房屋地址数据集作为训练数据,对基于第二预训练模型BERT的二分类文本模型进行微调,得到地址配对模型。
需注意的是,此处用于构建二分类文本模型的第二预训练模型BERT并非S1中经过微调后的BERT模型,而是需要用另外一个新的预训练模型BERT来构建二分类文本模型。本实施例中,二分类文本模型由第二预训练模型BERT和Softmax层组成,通过Softmax层对第二预训练模型BERT输出的编码向量进行分类预测。另外,用于训练二分类文本模型的第二房屋地址数据集是一个包含了大量统一同义地址对的数据集,其中每一个同义地址对均包含表示同一个地址但采用了不同文字表示方式的不同房屋地址文本,所有同义地址对均带有标注标签,不同义的地址的标注标签不同。训练后得到的地址配对模型,能够对输入的任意两条地址文本进行编码,然后通过Softmax层输出两条地址文本是否为同义地址对的分类预测结果。
S5、利用地址配对模型对目标房屋地址与S3中召回的每一条待匹配地址是否属于同义地址进行分类,将与目标房屋地址同义的待匹配地址作为待验证地址。
此时经过S2~S5的第一轮验证过程,筛选除了可能与目标房屋地址同义的待验证地址,此时待验证地址可能有多条。但是,受限于模型识别精度的问题,此处依然可能存在识别错误的问题,可能会将某些并非属于同义地址的地址文本识别为同义地址。因此,本发明设置了第二轮验证来进一步对待验证地址进行二次验证。
S6、利用预先标注好不同层级实体的第三房屋地址数据集作为训练数据,对基于第三预训练模型BERT的命名实体识别模型进行微调,训练得到能够从地址文本中提取不同层级实体的地址实体提取模型。
需注意的是,此处用于构建命名实体识别模型的第三预训练模型BERT并非S1中经过微调后的BERT模型和S2中经过微调后的BERT模型,而是需要用另外一个新的预训练模型BERT来构建命名实体识别模型。本实施例中,命名实体识别模型由第三预训练模型BERT和条件随机场CRF层组成,采用Bert+CRF的框架能够有效地从地址文本中抽取出地址相关的命名实体。其中用于训练命名实体识别模型的第三房屋地址数据集中包含一系列地址文本,且每一条地址文本中不同层级的地址实体均带有人工标注标签。
S7、利用地址实体提取模型从目标房屋地址和每一条待验证地址中分别识别出不同层级的地址实体,然后对每一层级的地址实体进行二次验证,若待验证地址中每一层级的地址实体均与目标房屋地址对应层级的地址实体一致,才将待验证地址作为与目标房屋地址同义的配对地址。
一般而言,命名实体识别模型从地址文本中提取的不同层级的实体地址至少包括小区名、幢号、单元号和室号。在二次验证时,如果对于两个地址,提取出的每一级地址实体都是一致的,那么可以视为这两个地址是同义的,存在任何一级地址实体不一致,就视为这两个地址不是同义的。对于同一个城市的地址组成的待搜索地址数据集,一般小区名很少重复,因此这几个层级的命名实体验证正确后,基本能够保证地址文本配对的正确性。当然,如果待搜索地址数据集涵盖了更大范围内的地址,例如不同城市或者不同省,那么可能存在小区名相同的情况,对于此类数据集可进一步在上述层级基础上,进一步引入省、市、区、街道这些地址实体层级来辅助验证。
下面基于上述S1~S7所示的基于AI的房屋地址匹配方法,将其应用于具体实例中对其具体实现过程和技术效果进行展示,以便本领域技术人员更好地理解本发明的实质。
实施例
在本实施例中,期望采用杭州市的的公安流动人口出租信息来补充租赁备案系统和租赁平台信息的不足。但由于公安流动人口出租信息基本采用人工采集模式,且和现有租赁备案、租赁平台数据有重复情况,需要对公安流动人口出租信息与城市大脑房管系统中的房屋地址库信息进行匹配关联,鉴于传统人工方式,编写代码匹配工作量大,匹配规则多变无法固定,匹配关联的成果无法进行沉淀,匹配率在55%左右,需要投入更多的人力,采用人工匹配提升匹配率,自动匹配方式难于提升匹配度,既耗时又耗力。因此,本实施例中,从公安流动人口出租信息中抽取地址数据,形成待搜索地址数据集,然后针对房管系统中的房屋地址从待搜索地址数据集中匹配同义的地址,从而将房管系统中的房屋地址库信息进行匹配关联。
本实施例基于上述S1~S7所示的流程,实现了一种基于AI的房屋地址匹配方法,其具体过程如下1)~8)步骤所述:
1)待搜索地址数据集中地址数据预处理
a)去掉空格和一些非汉字非数字字符;
b)全角半角转换:地址数据人为录入,有中文全角的问题,需要将所有的全角数据转换成半角数据;
c)别名库替换:别名库是人工维护的地址别名数据库,存储着地址别名对数据,例如(杭州市拱墅区朝晖路168号和杭州市钛合国际大厦)。待匹配地址经过别名库之后,经过别名替换,用替换后的地址数据进行后续的匹配;
2)基于一部分房屋地址数据集,采用无监督相似度算法SIMCSE对预训练的BERT模型进行微调,训练得到编码模型。
对比学习的目标之一就是学习到分布均匀的向量表示,因此我们可以借助对比学习间接达到规整表示空间的效果,这又回到了正样本构建的问题上来,而本发明正是无监督条件下的正样本构建。SIMCSE算法中,在训练阶段,将同一个样本分两次输入到同一个编码器中,我们会得到两个不同的表示向量z,z’,将z’作为正样本。SimCSE能在规整分布的同时保持正样本的对齐,SIMCSE算法采用random dropout mask为NLP中的对比学习提供了一个全新的视角。
3)用训练好的编码模型分别对待匹配地址和目标房屋地址进行编码,将每一条地址文本转换成高维向量,如图3所示。
4)基于HNSW算法,用余弦相似度进行匹配,计算上一步得到的目标房屋地址的高维向量与每一条待匹配地址的高维向量之间的相似度,根据计算的余弦相似度筛选出top5相似的待匹配地址。
HNSW利用多层的图结构来完成图的构建和检索,使得通过将节点随机划分到不同的layer,从上层图到下层图的检索中,越往下层节点之间的距离越近,随机性也越差,聚类系数越高。HNSW通过从上到下的检索,完成了NSW中Long Link高速公路快速检索的作用,通过最后底层的近邻检索,完成局部最近邻的查找。
5)如图4所示,用预先标注好同义地址对的一个房屋地址数据集,对基于预训练模型BERT+Softmax层的二分类文本模型进行微调,用于地址对数据的自动分类,训练后得到地址配对模型。
6)如图5所示,依据匹配阶段筛选出来的top5待匹配地址,按照余弦相似度大小排序,依次输入到地址配对模型中进行分类,输出正样本结果,即正样本为与目标房屋地址同义的待匹配地址,正样本作为待验证地址进行后续的二次验证。
7)如图6所示,用预先标注好不同层级实体的一个房屋地址数据集,对基于预训练模型BERT+CRF层的命名实体识别模型进行微调,训练得到能够从地址文本中提取不同层级实体的地址实体提取模型。
8)如图7所示,用地址实体提取模型对地址配对模型筛选出来的待匹配地址再次过滤,分别提取出目标房屋地址和每一条待验证地址的各层级的地址实体(小区名、幢号、单元号、室号),对比后保留与目标房屋地址各层级实体完全一致的待验证地址,作为最终目标房屋地址同义匹配的地址。
下面对本实施例中上述匹配方法(记为本发明方法)的实验结果进行展示:
1、本发明方法与传统方法(基于人工规则)的准确率对比
以上城区的待匹配地址(公安流口数据)为例,共含计2647条房屋地址,与杭州市房屋地址数据进行了匹配验证。全部数据被召回且有二分类模型为一致。总体有2514条匹配地址数据人工核验准确,总体准确率达到了95%。其他匹配相似度情况如下表1所示:
表1相似度验证结果
2、本发明与传统方法的匹配率和耗时对比
实验2为拱墅区三个小区待匹配地址(公安流口库)和房屋地址数据匹配验证,通过与传统基于人工规则方法比较,从下表2中可发现本发明方法匹配率上和传统的方法相近,都能达到较高的匹配率,但是本发明方法耗时比传统方法大幅减少。
表2三个小区匹配率和耗时对比
由此可见,采用本发明方法可较好匹配出房屋地址数据,为城市数据治理能力的提升提供了有效手段,后续将房屋地址库数据关系进行更深度的梳理,维护成知识图谱的形式,可以有效提高匹配准确率,并可解决地址别名,错名等问题。
3、本发明方法中不同模块的作用比对
本发明方法中,利用预训练的BERT模型,分别构建了编码模型、二分类文本模型、命名实体识别模型,从而通过编码模型进行了初次匹配,由二分类文本模型进行了第一次匹配验证,由命名实体识别模型进行了第二次匹配验证。为了对比说明上述各模型在本发明方法中所起的作用和效果,下面对其进行了对比试验。
对比验证过程中,以下城区随机的1000条待匹配地址(公安流口库)和房屋地址数据进行匹配验证,通过三种不同的算法:
算法1:只采用编码模型进行匹配,即执行S1~S3后返回相似度最高的地址作为配对结果;
算法2:采用编码模型进行匹配和二分类文本模型进行一次验证结合匹配,即执行S1~S5;
算法3:采用BERT,一次验证和二次验证结合匹配,即执行S1~S7的本发明方法。
三种算法的结果如下表3所示:
表3三种算法实验结果表
对比可见,加入二次验证模块之后,以牺牲召回率的前提下,能显著提高匹配的准确率。这与业务上以结果为导向的需求更加贴合。
另外,在本发明的其他实施例中,还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,能实现S1~S7任一所述的基于AI的房屋地址匹配方法。
另外,在本发明的其他实施例中,还提供了一种基于AI的房屋地址匹配设备,其包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,能实现S1~S7任一所述的基于AI的房屋地址匹配方法。
需要注意的是,上述的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。当然,还装置中还应当具有实现程序运行的必要组件,例如电源、通信总线等等。
以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。