复杂地址中多条路径的分析方法

xiaoxiao2020-10-23  16

复杂地址中多条路径的分析方法
【技术领域】
[0001]本发明涉及数据处理技术领域,尤其涉及一种复杂地址中多条路径的分析方法。
【背景技术】
[0002]人们在填写收件人地址、办公地址、家庭住址等地址信息时一般都是将省、市、区、门牌号、住宅小区、房间号等信息写在一起组成地址信息,如“广东深圳南山区高新中一道9号科技园软件大厦713”,这种写法适合人工识别,而当通过机器识别地址的结构化细节信息时首先要做的处理就是分词与标注,将输入的长文本切分成一个一个的地址词,并对地址词的属性按照标注标签进行标注,如上例地址信息的分词标注结果可能为:“广东/省深圳/市南山区/区高新中一道/道路9号/路号科技园/片区软件大厦/楼栋713/房间”。现有分词标注技术中应用的比较成熟的是基于统计的方法,例如,隐马尔可夫模型(HMM)的分词标注技术就是一种典型的基于统计模型的分词标注方法。
[0003]由于人们填写地址的随意性,给机器处理地址带来很大的不便。其中一种问题就是一条地址可能包含多个地址实体,如某公司地址存在多个办公场所深圳市南山区软件大厦713科兴科学园A座1-501”,或描述地址中带有辅助信息:“深圳市南山区软件大厦旁科兴科学园A座1-501”等。二个例子中都包含两个独立建筑实体“软件大厦”和“科兴科学园”,两者间隔一条马路。为了处理这种情况,亟需一种方案能够将复杂地址中独立的建筑实体拆分成不同的地址路径进行处理,如:从“深圳市南山区软件大厦713科兴科学园A座1-501”中分析出“深圳市南山区软件大厦713”、“深圳市南山区科兴科学园A座1-501”。

【发明内容】

[0004]本发明的目的在于提供一种复杂地址中多条路径的分析方法,解决复杂地址中多条路径的识别与拆分问题。
[0005]为实现上述目的,本发明提供一种复杂地址中多条路径的分析方法,包括:
[0006]步骤10、预先定义标注标签所对应标注的地址词的级别;
[0007]步骤20、对输入地址进行切分与标注,切分标注结果包括地址词及对应的标注标签;
[0008]步骤30、初始化一新的地址路径;初始化标注标签为其他的地址词的数量OtherNum为0,初始化上一个地址词的级别prevLevel ;
[0009]步骤40、按序分析每个地址词的标注标签,如果为其他,则OtherNum加1,直至当前地址词的标注标签不为其他;
[0010]步骤50、获取当前地址词的级别CUrLevel,根据otherNum的值或者根据prevLevel和curLevel之间的关系判断当前地址词是否是新的地址路径的开始;
[0011]步骤60、如果出现新的地址路径,初始化一新的地址路径并添加当前地址词至该新的地址路径;
[0012]步骤70、如果未出现新的地址路径,当前地址词添加到当前地址路径中;
[0013]步骤80、设置otherNum为0,返回步骤40,直至所有地址词处理完成。
[0014]其中,所述标注标签包括省、市、区、街道、社区、道路、路号、片区、楼栋、房间,还包括用于标注用前述标注标签无法标明的地址词的其他。
[0015]其中,用省、市、区、街道、社区标注标签标注的行政区域地址词的级别为I级,用道路、路号标注标签标注的门楼牌地址词的级别为2级,用片区标注标签标注的片区地址词的级别为3级,用楼栋标注标签标注的楼栋地址词的级别为4级,用房间标注标签标注的房间地址词的级别为5级。
[0016]其中,步骤50中,当otherNum大于特定值时,判断当前地址词是新的地址路径的开始。
[0017]其中,步骤50中,当prevLevel>curLevel,但不满足curLevel为门楼牌地址词的级别且prevLevel为片区或楼栋地址词的级别时,判断当前地址词是新的地址路径的开始。
[0018]其中,步骤30中初始化prevLevel为O级。
[0019]其中,步骤30还包括初始化一新的地址片段,地址片段用于存储一条地址中连续、级别相同的地址词。
[0020]其中,步骤60包括:
[0021]步骤61、如果当前地址片段内容不为空,则将该地址片段添加到当前地址路径中;
[0022]步骤62、保存当前地址路径,并初始化一新地址路径;
[0023]步骤63、如果当前地址词不为行政区域地址词且上一条地址路径包含行政区域地址片段,则将上一条地址路径中的行政区域地址片段添加至该新地址路径中;
[0024]步骤64、初始化一新地址片段,该新地址片段的级别为curLevel且添加当前地址词至该新地址片段;设置prevLevel = curLevel。
[0025]其中,步骤70包括:
[0026]步骤71、如果prevLevel = curLevel或者当前地址片段内容为空,贝U当前地址片段中增加当前地址词;
[0027]步骤72、否则将当前地址片段增加到当前地址路径中,并初始化一新地址片段,该新地址片段的级别为curLevel且添加当前地址词至该新地址片段;设置prevLevel =curLevelο
[0028]综上所述,本发明的复杂地址中多条路径的分析方法能够从复杂地址中识别与拆分出多条路径。
【附图说明】
[0029]图1为本发明复杂地址中多条路径的分析方法的流程图。
【具体实施方式】
[0030]下面结合附图,通过对本发明的【具体实施方式】详细描述,将使本发明的技术方案及其有益效果显而易见。
[0031]对应于地址的标注标签,本发明定义地址如下概念:
[0032]省:由“国家地名地址数据规范”规定的一级行政区域,包含:省、直辖市、自治区、特别行政区;
[0033]市:由“国家地名地址数据规范”规定的二级行政区域,包含:地级市、地区、自治州、盟;
[0034]区:由“国家地名地址数据规范”规定的三级行政区域,包含:市辖区、县级市、县、旗、特区、林区;
[0035]街道:由“国家地名地址数据规范”规定的四级行政区域,包含:区公所、镇、乡、苏木、街道;
[0036]社区:由“国家地名地址数据规范”规定的五级行政区域,包含:社区、居委会、行政村;
[0037]道路:道路、街、巷;
[0038]路号:门牌号;
[0039]片区:区域性质的地址名,通常该名称所代表的地址区域内容有数栋建筑,如科技园、深南花园、下沙村等;
[0040]楼栋:建筑物名称,通指一栋建筑,如软件大厦、I栋、2号楼、A座等;
[0041]房间:楼栋内的房间编号,如713 ;
[0042]其他:其他内容,用于标注用前述标注标签无法标明的地址词,如“与”、表示方位及位置关系的方位词等。
[0043]在本发明一较佳实施例中,定义:
[0044]行政区域地址词:由“国家地名地址数据规范”规定的一至五级行政区域统称为行政区域地址词;
[0045]门楼牌地址词:道路与路号统称为门楼牌地址词。
[0046]并且定义各地址词及相应的标注标签的级别如下:
[0047]行政区域地址词:1级;
[0048]门楼牌地址词:2级;
[0049]片区地址词:3级;
[0050]楼栋地址词:4级;
[0051]房间地址词:5级。
[0052]通过这样的定义,除门楼牌地址词外,可以简单判定级别小的地址词(空间上)包含级别大的地址词。
[0053]在本发明的较佳实施例中,将标注标签分为I级到5级共五个级别,以数字1-5分别表示各个级别,并且对于标注标签“其他”未设定级别而是单独列出,同时将prevLevel初始化的级别定为O级,可以方便后续的地址词关系比较,简化逻辑运算。实际上,应用本发明时,也可根据实际情况自行设定标签的数量、级别(分组)及级别表示形式。
[0054]参见图1,其为本发明复杂地址中多条路径的分析方法的流程图,主要包括:
[0055]步骤10、预先定义标注标签所对应标注的地址词的级别。标注标签可以包括省、市、区、街道、社区、道路、路号、片区、楼栋、房间,还包括用于标注用前述标注标签无法标明的地址词的其他。用省、市、区、街道、社区标注标签标注的行政区域地址词的级别为I级,用道路、路号标注标签标注的门楼牌地址词的级别为2级,用片区标注标签标注的片区地址词的级别为3级,用楼栋标注标签标注的楼栋地址词的级别为4级,用房间标注标签标注的房间地址词的级别为5级。
[0056]步骤20、对输入地址进行切分与标注,切分标注结果包括地址词及对应的标注标签。切分与标注可以基于隐马尔可夫模型进行,也可以选用其他常用的方法。如“深圳市南山区软件大厦713科兴科学园A座1-501”切分标注的结果为:“深圳市/市,南山区/区,软件大厦/楼栋,713/房间,科兴科学园/片区,A座/楼栋,1-501/房间”。
[0057]步骤30、初始化一新的地址路径;初始化标注标签为其他的地址词的数量otherNum为0,初始化上一个地址词的级别prevLevel。新的地址路径初始化后内容为空;prevLevel可以初始化为O级。
[0058]在本发 明的较佳实施例中,还可以初始化一新的地址片段,地址片段用于存储一条地址中连续、级别相同的地址词。新的地址片段初始化后内容为空。本发明定义一条地址中,连续、相同级别的地址词组成一个地址片段,一条地址路径由一个或多个地址片段组成。通过设置地址片段,同级的连续的地址词可以首先存入同一地址片段,同一地址片段再统一存入地址路径,而不是按地址词逐个存入,可以提高处理效率。通过设置地址片段,可以对同级的连续的地址词整体进行操作,还可以方便后续复制行政区域地址片段的操作。
[0059]步骤40、按序分析每个地址词的标注标签,如果为其他,则otherNum加1,直至当前地址词的标注标签不为其他。如果为其他,则otherNum加I并继续处理下一个地址词。因为标注标签为其他的地址词通常并非描述分析出的地址路径所必需的,因此在本发明的较佳实施例中仅通过otherNum来统计其数量以判断是否有新的地址路径开始,而对这些标注标签为其他的地址词不作具体处理。当然,根据具体情况或需求,也可以进一步存储这些地址词以备后续使用。
[0060]步骤50、获取当前地址词的级别curLevel,根据otherNum的值或者根据prevLevel和curLevel之间的关系判断当前地址词是否是新的地址路径的开始。
[0061]例如,如深圳市的标注标签为“市”,属于行政区域地址词,所以级别为I ;科兴科学园的标注标签为“片区”,级别为3。通过前后地址词的级别可以判断当前地址词是否是新地址路径的开始。
[0062]当otherNum大于特定值时,判断当前地址词是新的地址路径的开始。当otherNum大于某特定值时,例如3,可知2个地址词之间未知内容太多,则认为是新地址路径开始。
[0063]当prevLeveDcurLeveI,但不满足curLeveI为门楼牌地址词的级别且prevLeveI为片区或楼栋地址词的级别时,判断当前地址词是新的地址路径的开始,也即新出现的地址词级别比前一个小,判定是新地址路径出现,如当前地址词为“科兴科学园/片区”时,由于prevLevel为5(713/房间),而房间不能包含片区,因此判定“科兴科学园/片区”为新地址路径的开始。但门楼牌地址词有一定的特殊性,不完全符合包含关系,如村中的门楼牌地址词描述的含义是楼栋,所以片区地址词允许包含门楼牌地址词;门楼牌地址词出现在楼栋地址词后面的时候通常是在描述店面,因此也是允许的。
[0064]判断结果为是时,进行步骤60、如果出现新的地址路径,初始化一新的地址路径并添加当前地址词至该新的地址路径。可以以地址词为操作单位进行添加。
[0065]在本发明的较佳实施例中,也可以以地址片段为单位进行添加,此时步骤60包括:
[0066]步骤61、如果当前地址片段内容不为空,则将该地址片段添加到当前地址路径中;
[0067]步骤62、保存当前地址路径,并初始化一新地址路径;
[0068]步骤63、如果当前地址词不为行政区域地址词且上一条地址路径包含行政区域地址片段,则将上一条地址路径中的行政区域地址片段添加至该新地址路径中;
[0069]步骤64、初始化一新地址片段,该新地址片段的级别为curLevel且添加当前地址词至该新地址片段;设置prevLevel = curLevel。
[0070]判断结果为否时,进行步骤70、如果未出现新的地址路径,当前地址词添加到当前地址路径中。可以以地址词为操作单位进行添加。
[0071]在本发明的较佳实施例中,也可以以地址片段为单位进行添加,此时步骤70包括:步骤71、如果prevLevel = curLevel或者当前地址片段内容为空,则当前地址片段中增加当前地址词;步骤72、否则将当前地址片段增加到当前地址路径中,并初始化一新地址片段,该新地址片段的级别为curLevel且添加当前地址词至该新地址片段;设置prevLevel = curLevel0
[0072]步骤80、设置otherNum为0,返回步骤40,直至所有地址词处理完成。所有地址词处理完毕后,可获得所有地址路径列表。
[0073]例如“深圳市南山区软件大厦713科兴科学园A座1-501”将得到2条地址路径:1.{[深圳市/市,南山区/区][软件大厦/楼栋][713/房间]} ;2.{[深圳市/市,南山区/区][科兴科学园/片区][A座/楼栋][1-501/房间]}。其中每个中括号内的内容为一地址片段。
[0074]综上所述,本发明的复杂地址中多条路径的分析方法能够从复杂地址中识别与拆分出多条路径。
[0075]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种复杂地址中多条路径的分析方法,其特征在于,包括: 步骤10、预先定义标注标签所对应标注的地址词的级别; 步骤20、对输入地址进行切分与标注,切分标注结果包括地址词及对应的标注标签;步骤30、初始化一新的地址路径;初始化标注标签为其他的地址词的数量otherNum为0,初始化上一个地址词的级别prevLevel ; 步骤40、按序分析每个地址词的标注标签,如果为其他,则otherNum加1,直至当前地址词的标注标签不为其他; 步骤50、获取当前地址词的级别curLevel,根据otherNum的值或者根据prevLevel和curLevel之间的关系判断当前地址词是否是新的地址路径的开始; 步骤60、如果出现新的地址路径,初始化一新的地址路径并添加当前地址词至该新的地址路径; 步骤70、如果未出现新的地址路径,当前地址词添加到当前地址路径中; 步骤80、设置otherNum为0,返回步骤40,直至所有地址词处理完成。2.根据权利要求1所述的复杂地址中多条路径的分析方法,其特征在于,所述标注标签包括省、市、区、街道、社区、道路、路号、片区、楼栋、房间,还包括用于标注用前述标注标签无法标明的地址词的其他。3.根据权利要求2所述的复杂地址中多条路径的分析方法,其特征在于,用省、市、区、街道、社区标注标签标注的行政区域地址词的级别为I级,用道路、路号标注标签标注的门楼牌地址词的级别为2级,用片区标注标签标注的片区地址词的级别为3级,用楼栋标注标签标注的楼栋地址词的级别为4级,用房间标注标签标注的房间地址词的级别为5级。4.根据权利要求1所述的复杂地址中多条路径的分析方法,其特征在于,步骤50中,当otherNum大于特定值时,判断当前地址词是新的地址路径的开始。5.根据权利要求3所述的复杂地址中多条路径的分析方法,其特征在于,步骤50中,当prevLeveDcurLeveI,但不满足curLeveI为门楼牌地址词的级别且prevLeveI为片区或楼栋地址词的级别,判断当前地址词是新的地址路径的开始。6.根据权利要求3所述的复杂地址中多条路径的分析方法,其特征在于,步骤30中初始化prevLevel为O级。7.根据权利要求1所述的复杂地址中多条路径的分析方法,其特征在于,步骤30还包括初始化一新的地址片段,地址片段用于存储一条地址中连续、级别相同的地址词。8.根据权利要求7所述的复杂地址中多条路径的分析方法,其特征在于,步骤60包括: 步骤61、如果当前地址片段内容不为空,则将该地址片段添加到当前地址路径中; 步骤62、保存当前地址路径,并初始化一新地址路径; 步骤63、如果当前地址词不为行政区域地址词且上一条地址路径包含行政区域地址片段,则将上一条地址路径中的行政区域地址片段添加至该新地址路径中; 步骤64、初始化一新地址片段,该新地址片段的级别为curLevel且添加当前地址词至该新地址片段;设置prevLevel = curLevel。9.根据权利要求7所述的复杂地址中多条路径的分析方法,其特征在于,步骤70包括: 步骤71、如果prevLevel = curLevel或者当前地址片段内容为空,贝U当前地址片段中增加当前地址词; 步骤72、否则将当前地址片段增加到当前地址路径中,并初始化一新地址片段,该新地址片段的级别为curLevel且添加当前地址词至该新地址片段;设置prevLevel =curLevelο
【专利摘要】本发明涉及一种复杂地址中多条路径的分析方法。该方法包括:步骤10、预先定义标注标签所对应标注的地址词的级别;步骤20、对输入地址进行切分与标注;步骤30、初始化一新的地址路径;初始化标注标签为其他的地址词的数量otherNum为0,初始化上一个地址词的级别prevLevel;步骤40、按序分析每个地址词的标注标签;步骤50、获取当前地址词的级别curLevel,判断当前地址词是否是新的地址路径的开始;步骤60、如果出现新的地址路径,添加当前地址词至该新的地址路径;步骤70、如果未出现新的地址路径,当前地址词添加到当前地址路径中;步骤80、返回步骤40,直至所有地址词处理完成。本发明的复杂地址中多条路径的分析方法能够从复杂地址中识别与拆分出多条路径。
【IPC分类】G06F17/30
【公开号】CN104899296
【申请号】CN201510310107
【发明人】王明兴, 贾西贝
【申请人】深圳市华傲数据技术有限公司
【公开日】2015年9月9日
【申请日】2015年6月8日

最新回复(0)