地址标准化方法、系统及电子设备与流程

文档序号:24067808发布日期:2021-02-26 13:47阅读:152来源:国知局
地址标准化方法、系统及电子设备与流程

[0001]
本发明属于文本及自然语言处理技术领域,尤其涉及一种地址标准化方法、系统及电子设备。


背景技术:

[0002]
随着互联网的兴起与大数据的井喷式的发展,在数据挖掘和自然语言等相关处理相关任务中,大量无结构化的数据且富含大量的信息都得不到有效的加工利用,其中地址数据的工业意义最为突出,不管是物流电商场景还是数字城市场景都依赖这类数据,地址的无结构化表现的形式多种多样,可以分为两大类,第一类为书写录入没有遵循规范;第二类为不同部门的地址标准定义不一致。
[0003]
故需要对已经存在的老的无结构化或者非标准地址进行清洗转化,同时,为了实现在用户新输入地址数据时,能瞬间纠正非标准地址以实现标准地址的录入,有必要提供一种地址标准化方法。


技术实现要素:

[0004]
基于此,针对上述技术问题,提供一种地址标准化方法、系统及电子设备。
[0005]
为解决上述技术问题,本发明采用如下技术方案:
[0006]
一方面,本发明提供一种地址标准化方法,包括:
[0007]
s101、根据预先收集的标准地址字符串集合,构建专业词集合;
[0008]
s102、构建纠错词集合:对所述专业词集合中的每个中文词进行拼音化,建立拼音字符组与中文词的对应关系;
[0009]
s103、将所述专业词集合的停用词删除,形成关键词集合;
[0010]
s104、根据所述关键词集合构建倒排索引,所述倒排索引的存储格式为key和value,所述key为所述关键词集合的词,所述value为所述标准地址集合中包含key的标准地址字符串以及对该标准地址字符串进行2-gram分解后的数组;
[0011]
s105、构建2-gram语言模型:对所述标准地址字符串集合中的各标准地址字符串进行2-gram分解,计算各分解词的词频;
[0012]
s106、接收待标准化的地址字符串;
[0013]
s107、将所述待标准化的地址字符串转换为拼音字符组;
[0014]
s108、将所述拼音字符组与所述纠错词集合进行匹配,得到相应的中文词集合;
[0015]
s109、在所述关键词集合中查询所述中文词集合中的各中文词,保留查询到的中文词,形成关键中文词集合,该集合中中文词的数量记为size_cn_keys;
[0016]
s110、对所述关键中文词集合中的每个中文词进行召回操作:将每个中文词与所述倒排索引的key进行匹配,取出对应的value,取出的各value中的标准地址字符串形成第一集合;
[0017]
s111、统计所述第一集合中的每个标准地址字符串包含所述中文词集合中不重复
中文词的数量,记为size_in;
[0018]
s112、将满足size_in/size_cn_keys≧阈值的相应标准地址字符串加入第二集合,若所述第二集合中size_in/size_cn_keys的最大值的标准地址字符串只有一条且该最大值为1时,则所述标准地址字符串即为待标准化的地址字符串的标准地址,否则,执行步骤s113,0.5<阈值<1;
[0019]
s113、通过相似度匹配,得到所述待标准化的地址字符串的标准地址:
[0020]
对所述中文词集合中的中文词进行拼接,得到多个拼接字符串;
[0021]
根据所述2-gram语言模型中各分解词的词频,计算所述多个拼接字符串的频率,将频率最高的拼接字符串作为所述待标准化的地址字符串的等价地址字符串;
[0022]
将所述等价地址字符串与所述第一集合中的标准地址字符串进行相似度匹配,匹配度最高的标准地址字符串即为待标准化的地址字符串的标准地址。
[0023]
另一方面,本发明提供一种地址标准化系统,包括存储模块,所述存储模块包括由处理器加载并执行的指令,所述指令在被执行时使所述处理器执行上述的一种地址标准化方法。
[0024]
再一方面,本发明提供一种电子设备,该设备具有上述的一种地址标准化系统。
[0025]
本发明可以准确并且快速地实现地址标准化。
附图说明
[0026]
下面结合附图和具体实施方式本发明进行详细说明:
[0027]
图1为本发明的流程图。
具体实施方式
[0028]
如图1所示,本说明书实施例提供一种地址标准化方法,包括:
[0029]
s101、根据预先收集的标准地址字符串集合,构建专业词集合,具体过程如下:
[0030]
对标准地址字符串集进行词典收集,得到专有名词。词典收集是指收集专有地名的名词,比如上海市、浦东区、金海路或者新奥广场等等。
[0031]
将专有名词加入到分词器进行全模式分词,识别出大颗粒以及小颗粒的词,如专有名词:北京清华大学,分词后为:北京清华清华大学华大大学。其中,清华大学是大颗粒,小颗粒的有北京、清华、华大、大学。
[0032]
对识别出的词进行筛选、纠正(筛选错误词,进行纠正,无法纠正则删除),得到专业词集合。
[0033]
s102、构建纠错词集合:对专业词集合中的每个中文词进行拼音化,建立拼音字符组与中文词的对应关系。
[0034]
每个中文词对应的拼音字符组包括普通话拼音字符组、方言拼音字符组以及形近字拼音字符组。考虑到词可能对应出错的拼音(如方言拼音),多个拼音字符可以对应同一个词,考虑到同音的情况,则会出现一个拼音字符对应多个中文的情况,这种情况,只需要把多个中文词当成一个数组。
[0035]
s103、将专业词集合的停用词删除,形成关键词集合。
[0036]
具体地,需要先构建停用词集合,过程如下:
[0037]
1、借助地址的层次结构,将专业词集合中的父级词加入停用词集合,比如一级(省),二级(地级市),三级(区/县)等。
[0038]
2、将专业词集合中词频高的词加入停用词集合:词频term-frequency的计算,需要事先对标准地址字符串进行去重复操作,把完全一样的地址字符串删除,然后计算term-frequency,把其中term-frequency值相对较大的词也加到停用词表中。
[0039]
3、根据停用词集合,将专业词集合的停用词删除,形成关键词集合。
[0040]
专业词表中的停用词会影响性能:当一个词作为搜索对象,搜索包含此词的字符串时,如果搜索到的结果比较多,那么还需要对搜索结果进行二次搜索,这样就非常耗时,最坏情况是,搜索结果返回集合的全部字符串,这种搜索的执行,毫无意义,因为它相当于从全量集合中直接取全部内容,但是它比直接取还要多一步搜索。
[0041]
为了尽可能多的收集停用词,以提升后期的运行速度,本实施例还可以以标准地址字符串的字符作为分界线,将分界线前的词加入停用词集合,分界线如"市/镇/路"等。
[0042]
s104、根据关键词集合构建倒排索引,所述倒排索引的存储格式为key和value,所述key为所述关键词集合的词,所述value为所述标准地址集合中包含key的标准地址字符串以及对该标准地址字符串进行2-gram分解后的数组。
[0043]
如key:金肖苑,value:[浦东新区金钻路398弄金肖苑506室,[浦东,东新,新区,区金,金钻,钻路,路398,398弄,弄金,金肖,肖苑,苑506,506室]]。
[0044]
s105、构建2-gram语言模型:对所述标准地址字符串集合中的各标准地址字符串进行2-gram分解,计算各分解词的词频。
[0045]
s106、接收待标准化的地址字符串。
[0046]
s107、将待标准化的地址字符串转换为拼音字符组。
[0047]
s108、将拼音字符组与纠错词集合进行匹配,得到相应的中文词集合。
[0048]
本步骤通过纠错词集合就可以解决词级别的纠错任务,而传统的方式需要利用分词器进行分词,原始文本中的错误会给分词器引入噪音导致分词结果特别差,分词器通常根据上下文的字与先验的词表进行分词,而地名词的上下文是毫无意义的词,这会让分词器无能为力从而分词错误。
[0049]
s109、在关键词集合中查询所述中文词集合中的各中文词,保留查询到的中文词,形成关键中文词集合,该集合中中文词的数量记为size_cn_keys。
[0050]
s110、对关键中文词集合中的每个中文词进行召回操作:将每个中文词与所述倒排索引的key进行匹配,取出对应的value,取出的各value中的标准地址字符串形成第一集合。
[0051]
s111、统计第一集合中的每个标准地址字符串包含中文词集合中不重复中文词的数量,记为size_in,然后按照size_in由大到小的顺序,对第一集合中的每个标准地址字符串进行排序,使size_in大的标准地址字符串排在前面,从而提高后续步骤的效率。
[0052]
s112、将满足size_in/size_cn_keys≧阈值的相应标准地址字符串加入第二集合,若第二集合中size_in/size_cn_keys的最大值的标准地址字符串只有一条且该最大值为1时,则标准地址字符串即为待标准化的地址字符串的标准地址,否则,执行步骤s113,0.5<阈值<1。
[0053]
其中,阈值为经验值,可以在上述范围内自行选择,推荐使用较大的值,在本实施
例中,阈值为0.6。
[0054]
s113、通过相似度匹配,得到待标准化的地址字符串的标准地址:
[0055]
1、对中文词集合中的中文词进行拼接,得到多个拼接字符串。
[0056]
2、根据2-gram语言模型中各分解词的词频,计算多个拼接字符串的频率,将频率最高的拼接字符串作为待标准化的地址字符串的等价地址字符串。
[0057]
3、将等价地址字符串与第一集合中的标准地址字符串进行相似度匹配,匹配度最高的标准地址字符串即为待标准化的地址字符串的标准地址。
[0058]
使用等价地址字符串的目的是因为待标准化的地址字符串中可能会存在不可预知并且比较严重的错误,无法和第二集合中的标准地址字符串进行相似度匹配。
[0059]
在本实施例中,采用基于2-gram化的方法计算相似度,当然也可以使用其它的相似度计算方法,比如编辑距离。
[0060]
下面对步骤106-112进行举例说明:
[0061]
假设接收到待标准化的地址字符串为上海高桥镇海高二村,纠错词集合中有:
[0062]
shanghai:上海,
[0063]
haigao:海高,
[0064]
ercun:二村,
[0065]
haigaoercun:海高二村,
[0066]
gaoqiaozhen:高桥镇。
[0067]
上海高桥镇海高二村转换为拼音字符组为:[shanghai,haigao,ercun,haigaoercun,gaoqiaozhen],将拼音字符组与纠错词集合进行匹配,得到相应的中文词集合为[上海,海高,海高二村,高桥镇,二村],
[0068]
在关键词集合中查询中文词集合中的各中文词,保留查询到的中文词,形成关键中文词集合[海高,海高二村,高桥镇,二村],该集合的size_cn_keys为4。
[0069]
通过召回操作,将关键中文词集合中的每个中文词与倒排索引的key进行匹配,取出对应的value,取出的各value中的标准地址字符串形成第一集合:
[0070]
各value如下:
[0071]
{海高:[上海市浦东区高桥镇花山路100号海高二村,[上海,海市,市浦,浦东,东区,区高,高桥,桥镇,镇花,花山,山路,路100,100号,号海,海高,高二,二村],上海市浦东区高桥镇海高路200号金色宾馆,[上海,海市,市浦,浦东,东区,区高,高桥,桥镇,镇海,海高,高路,路200,200号,号金,金色,色宾,宾馆]],[上海市浦东区高桥镇花山路103号海高一村,[上海,海市,市浦,浦东,东区,区高,高桥,桥镇,镇花,花山,山路,路100,100号,号海,海高,高一,一村]]}
[0072]
{海高二村:[上海市浦东区高桥镇花山路100号海高二村,[上海,海市,市浦,浦东,东区,区高,高桥,桥镇,镇花,花山,山路,路100,100号,号海,海高,高二,二村]]}
[0073]
{高桥镇:[上海市浦东区高桥镇花山路100号海高二村,[上海,海市,市浦,浦东,东区,区高,高桥,桥镇,镇花,花山,山路,路100,100号,号海,海高,高二,二村]],[上海市浦东区高桥镇海高路200号金色宾馆,[上海,海市,市浦,浦东,东区,区高,高桥,桥镇,镇海,海高,高路,路200,200号,号金,金色,色宾,宾馆]],[上海市浦东区高桥镇花山路103号海高一村,[上海,海市,市浦,浦东,东区,区高,高桥,桥镇,镇花,花山,山路,路103,103号,
号海,海高,高一,一村]],[上海市浦东区高桥镇海高路200号金色宾馆],[上海,海市,市浦,浦东,东区,区高,高桥,桥镇,镇海,海高,高路,路200,200号,号金,金色,色宾,宾馆]],[上海市浦东区高桥镇学前街1弄学前二村,[上海,海市,市浦,浦东,东区,区高,高桥,桥镇,镇学,街1,1弄,弄学,学前,前二,二村]]}
[0074]
{二村:[上海市浦东区高桥镇花山路100号海高二村,[上海,海市,市浦,浦东,东区,区高,高桥,桥镇,镇花,花山,山路,路100,100号,号海,海高,高二,二村],[上海市浦东区高桥镇学前街1弄学前二村,[上海,海市,市浦,浦东,东区,区高,高桥,桥镇,镇学,街1,1弄,弄学,学前,前二,二村]]]}。
[0075]
形成第一集合:
[0076]“上海市浦东区高桥镇花山路100号海高二村”,对应size_in为4。
[0077]“上海市浦东区高桥镇花山路100号海高一村”,对应size_in为2。
[0078]“上海市浦东区高桥镇学前街1弄学前二村”,对应size_in为2。
[0079]“上海市浦东区高桥镇海高路200号金色宾馆”,对应size_in为2。
[0080]
由于size_cn_keys为4,故满足size_in/size_cn_keys≧0.6的标准地址字符串为“上海市浦东区高桥镇花山路100号海高二村”,该字符串加入第二集合,并且由于该字符串满足size_in/size_cn_keys=1,故“上海市浦东区高桥镇花山路100号海高二村”即为上海高桥镇海高二村的标准地址。
[0081]
下面对步骤s113进行举例说明:
[0082]
假设待标准化的地址字符串为浦东新区金赞路398弄金肖苑506室,得到的中文词集合为[[金钻,锦錾],金钻路,398弄,金肖苑,506室],经过顺序拼接,得到4个拼接字符串:
[0083]
金钻金钻路398弄金肖苑506室,
[0084]
锦錾金钻路398弄金肖苑506室,
[0085]
金钻路398弄金肖苑506室,
[0086]
锦錾路398弄金肖苑506室。
[0087]
根据2-gram语言模型中各分解词的词频,计算4个拼接字符串的频率:
[0088]
p1=p(金钻)*p(钻金)*p(金钻)*p(钻路)*p(路398)*p(398弄)*p(弄金)*p(金肖)*p(肖苑)*p(苑506)*p(506室),
[0089]
p2=p(锦錾)*p(錾金)*p(金钻)*p(钻路)*p(路398)*p(398弄)*p(弄金)*p(金肖)*p(肖苑)*p(苑506)*p(506室),
[0090]
p3=p(金钻)*p(钻路)*p(路398)*p(398弄)*p(弄金)*p(金肖)*p(肖苑)*p(苑506)*p(506室),
[0091]
p4=p(锦錾)*p(錾路)*p(路398)*p(398弄)*p(弄金)*p(金肖)*p(肖苑)*p(苑506)*p(506室)。
[0092]
从p1-p4中选一个最大的值,这里选p3。
[0093]
所以p3对应的字符串'金钻路398金肖苑506'为待标准化的地址字符串的等价地址字符串s1。
[0094]
下面采用2-gram化方法进行相似度匹配,假设s2为第一集合中的一条记录,s2为[上海市浦东新区金钻路398弄金肖苑10栋506室,[上海,海市,市浦,浦东,东新,新区,区海,海鹏,鹏路,路1056,1056弄,弄金,金肖,肖苑,苑15,15号,号506,506室]]。
[0095]
对等价地址字符串s1进行2-gram分解,分解成[金钻,钻路,路398,398弄,弄金,金肖,肖苑,苑506,506室]。
[0096]
对s1和s2经过2-gram分解后数组的元素进行合并、去重得到corpus:上海,海市,市浦,浦东,东新,新区,区金,金钻,钻路,路398,398弄,区海,海鹏,鹏路,路1056,1056弄,弄金,金肖,肖苑,苑506,苑15,15号,号506,506室。
[0097]
用corpus里面的词按顺序分别与s1和s2的数组中的词进行对比,如果corpus里面的词出现在s1或s2的数组中,则表示为1,反之,则表示为0,以此类推进行one-hot编码:
[0098]
s1:000111111110000011110001,s2:111111000001111111101111。
[0099]
接着利用jaacard、cosin等公式,计算向量的相似度。
[0100]
重复上述过程,计算等价地址字符串s1与每一个s2的相似度,最后选择得分最高的s2为最终的标准地址。
[0101]
基于同一发明构思,本说明书实施例还提供一种地址标准化系统,包括存储模块,存储模块包括由处理器加载并执行的指令(程序代码),指令在被执行时使处理器执行本说明书上述一种地址标准化方法部分中描述的根据本发明各种示例性实施方式的步骤。
[0102]
其中,存储模块可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)和/或高速缓存存储单元,还可以进一步包括只读存储单元(rom)。
[0103]
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0104]
基于同一发明构思,本说明书实施例还提供一种电子设备,该电子设备具有本说明书上述的一种地址标准化系统,此处不再具体赘述。
[0105]
但是,本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上所述实施例的变化、变型都将落在本发明的权利要求书范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1