一种基于集合运算的中文地址行政区划解析方法\n技术领域\n[0001] 本发明涉及中文地址解析技术,尤其涉及一种基于集合运算的中文地址行政区划解析方法。\n背景技术\n[0002] 科技的不断发展,人们对生活中各个方面的需求不断提升,服务化社会成为未来发展的趋势。作为服务化中的一种形式,当今地理信息位置服务是通过国家地理信息普查、实地勘察等方式获取数据建立一个标准的中文地址库,然后通过匹配进行信息返回。\n[0003] 在互联网位置服务中,地理位置可以有多种方式来表达,中文地址是其中之一。一个规范的中文地址应包含完整的行政区划,并按照行政区划(省/市/县/乡/村)、路街、牌号、建筑、户室的次序来表达。一个完整规范的中文地址可以得到与其对应的地理位置。然而,在互联网上,中文地址的经常用非规范行政区划方式来描述,中文地址中与行政区划相关的方式有:行政区划用简称(省略行政区划特征词)、省略部分行政区划、省略行政区划、行政区划信息不是规范次序出现。此外,地址的非行政区划部分存在与行政区划同名的情况,主要表现在:路街的名称常用行政区划名称命名、建筑(或企业)名称中包含行政区划名称、地名与行政区划同名,等等。在互联网中纷杂的非规范信息中,辨别出相对于用户需要的信任度比较高的信息,在当今地理信息位置服务方面变得十分必要,一个基于集合运算的中文地址行政区划解析算法随着用户的需要而产生。\n[0004] 对于一个中文地址为了快速地解析出地址的行政区划,一般借助行政区划字典来匹配地址中的行政区划。由于可能存在多个行政区划信息,利用字典则会匹配出多个行政区划集合。例如地址中存在行政区划词“江苏”和“鼓楼”,查询返回的结果集为{{江苏省,南京市,鼓楼区},{江苏省,徐州市,鼓楼区},{福建省,福州市,鼓楼区},{河南省,开封市,鼓楼区}},{江苏省,,},无法得到更详尽更准确的行政区划信息。因此,针对上诉问题,发明一种基于集合运算的中文地址行政区划解析算法,可以有效的提高地址数据查找的速度和准确性,从而提高网络地图在线服务质量,为用户更好的定位。\n发明内容\n[0005] 本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于集合运算的中文地址行政区划解析方法。\n[0006] 本发明解决其技术问题所采用的技术方案是:一种基于集合运算的中文地址行政区划解析方法,它包括以下步骤:\n[0007] 1)利用行政区划字典和移动窗口最大匹配算法(Move Window Max Match,MWMM),查询匹配出所需解析的中文地址字符串中所有可能的行政区划结果集;\n[0008] 2)根据步骤1)得到的所有可能的行政区划结果集,进行条件集合运算;\n[0009] 行政区划条件集合运算规则如下:\n[0010] 一个行政区划是包括省、市、县、乡、村5级行政区划元素,并按照省、市、县、乡、村的次序组成,于是行政区划D记为:D={d1,d2,d3,d4,d5};\n[0011] 2.1)若所有可能的行政区划结果集为1个行政区划集合,则计算1个行政区划集合的交集;\n[0012] 一个行政区划集合DS={D1,D2,…,Dm},并且D1,D2,…,Dm的省级区划元素都不为空,则行政区划集合DS的交集为DI(D1,D2,…,Dm);用公式(1)表示:\n[0013] DI(D1,D2,…,Dm)=∩DS=∩{D1,D2,…,Dm}=D1∩D2∩…∩Dm (1)\n[0014] 2.2)若所有可能的行政区划结果集为多个行政区划集合,则计算多个行政区划集合的交集;\n[0015] 多个行政区划集合的交为多个行政区划集合分别两两相交结果的集合,记为DSI;\n[0016] 用公式(2)表示:\n[0017]\n[0018]\n[0019] 若上述两两相交结果的集合中有运算结果为空的,则将对应的行政区划的交运算变成并运算;\n[0020] 3)输出解析出的行政区划。\n[0021] 按上述方案,步骤2)中计算行政区划的交集具体规则如下:\n[0022] 行政区划的交为各级行政区划元素的交,2个行政区划元素的交记为:dIi,i=1,\n2,3,4,5;\n[0023] 由于行政区划元素之间存在包含关系,即除了省级区划外,其它各级区划都属于1个或n个上级行政区划,先计算省级行政化元素的交,再计算非省级区划元素的交;\n[0024] a)省级行政区划元素的交规则如下:\n[0025]\n[0026] 其中ρ表示不确定,即2个行政区划中存在一个行政区划的省级区划元素为空 此时需要对省级区划元素为空的行政区划利用行政区划字典查询得到其省级区划元素再进行计算;\n[0027] 即当省级区划元素相等时,则交的结果为该省级区划元素;\n[0028] 当省级区划元素不相等,且省级区划元素都不为空,则交的结果为空;\n[0029] 当省级区划元素不相等,且区划元素有一个为空时,此时需要对省级区划元素为空的行政区划利用行政区划字典查询得到其省级区划元素再进行计算;\n[0030] b)非省级区划元素的交结果采用以下规则;\n[0031]\n[0032] 即当区划元素相等时,则交的结果为区划元素;\n[0033] 当区划元素不相等,且区划元素都不为空,则结果为空;\n[0034] 当区划元素不相等,且区划元素有一个为空时,如果存在非空的交父元素结果为非空区划元素值。\n[0035] 本发明产生的有益效果是:本发明方法解决了在互联网中中文地址数据混乱无序的情况下快速解析出中文地址行政区划的问题,并能得到信息量最完整最准确的中文地址的行政区划解析结果。\n具体实施方式\n[0036] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。\n[0037] 一种基于集合运算的中文地址行政区划解析方法,它包括以下步骤:\n[0038] S1、利用行政区划字典和移动窗口最大匹配算法(Move Window Max Match,MWMM),查询匹配出一个中文地址字符串中所有可能的行政区划结果集。\n[0039] S1中的MWMM得到的所有可能的行政区划结果集,是根据中文地址中包含的行政区划元素词计算出这个地址字符串所包含的可能行政区划结果集。行政区划元素词是指中文地址中的词可以与行政区划字典成功匹配出一个或多个行政区划的词。\n[0040] (1)一个中文地址中只包含一个行政区划元素词,且只匹配一个行政区划。\n[0041] (2)一个中文地址中只包含一个行政区划元素词,且可以匹配多个行政区划,则只有一个行政区划集合。\n[0042] (3)一个中文地址中包含多个行政区划元素词。每个行政区划元素都匹配一个行政区划集合,则多个行政区划元素词可以匹配多个行政区划集合。\n[0043] S2、根据S1中行政区划集合个数,计算行政区划的交集、1个行政区划集合的交集、多个行政区划的交集。\n[0044] (1)计算行政区划的交集:\n[0045] 若有2个行政区划D1={d11,d12,d13,d14,d15}和D2={d21,d22,d23,d24,d25}。则行政区划的交为各级行政区划元素的交。记为:DI。用公式(1)表示。2个行政区划元素的交记为:\ndIi,i=1,2,3,4,5。\n[0046] DI(D1,D2)=D1∩D2={d11,d12,d13,d14,d15}∩{d21,d22,d23,d24,d25}\n[0047] ={d11∩d21,d12∩d22,d13∩d23,d14∩d24,d15∩d25}\n[0048] ={dI1,dI2,dI3,dI4,dI5} (1)\n[0049] 由于行政区划元素之间存在包含关系,即除了省级区划外,其它各级区划都属于1个或n个上级行政区划。先计算省级行政化元素的交,再计算非省级区划元素的交。\n[0050] a)省级行政区划元素的交\n[0051]\n[0052] ρ表示不确定,即2个行政区划中存在一个行政区划的省级区划元素为空 此时需要对省级区划元素为空的行政区划利用行政区划字典查询得到省级区划元素非空的行政区划。\n[0053] 假设,行政区划D={d1,d2,d3,d4,d5},其中 选取D中的\n一个区划元素dk,用公式(3)表示。\n[0054]\n[0055] 则用行政区划字典查询得到m个行政区划的集合:\n[0056] query(wdk)=DS(wdk)\n[0057] ={{wd11,…,wd1k},…,{wdm1,…,wdmk}} (4)\n[0058] 如果,D=D1,则\n[0059] d11∩d21={wd11∩d21∪…∪wdm1∩d21} (5)\n[0060] b)非省级区划元素的交\n[0061]\n[0062] 当区划元素相等时,则交的结果为区划元素;\n[0063] 当区划元素不相等,且区划元素都不为空,则结果为空;\n[0064] 当区划元素不相等,且区划元素有一个为空时,如果存在非空的交父元素结果为非空区划元素值。\n[0065] (2)计算一个行政区划集合的交集\n[0066] 一个行政区划集合DS={D1,D2,…,Dm},并且D1,D2,…,Dm的省级区划元素都不为空,则行政区划集合DS的交集为DI(D1,D2,…,Dm)。用公式(7)表示。\n[0067] DI(D1,D2,…,Dm)=∩DS=∩{D1,D2,…,Dm}=D1∩D2∩…∩Dm (7)\n[0068] (3)计算多个行政区划集合的交集\n[0069] a)多个行政区划集合的交为多个行政区划集合分别两两相交结果的交。记为DSI。\n用公式(8)表示。\n[0070]\n[0071] b)判断步骤a)中的行政区划集合的交集运算结果是否为空\n[0072] ①如果 则造成地址的行政区划信息的丢失。为了避免\n行政区划信息的丢失,当 时,将行政区划的交运算变成并运算。\n即DSI(DS1,DS2,…,DSn)→∪DSU(DS1,DS2,…,DSn),用公式(9)表示。\n[0073] DSI(DS1,DS2,…,DSn)→∪DSU(DS1,DS2,…,DSn)\n[0074] =∪{D11,D12,…,D1k}∪{D21,D22,…,D2l}∪…{Dn1,Dn2,…,Dnm}\n[0075] =∪{D11,D12,…,D1k,D21,D22,…,D2l,…,Dn1,Dn2,…,Dnm} (9)\n[0076] ②如果 则最终行政区划集合结果即为DSI。\n[0077] S3、输出解析出的行政区划。\n[0078] 下面选取中文地址“福州市鼓楼区洪山园路”对本发明的具体实施过程进行说明。\n[0079] S1、利用行政区划字典和移动窗口最大匹配算法(Move Window Max Match,MWMM),计算出该地址所包含的可能行政区划结果集。\n[0080] 输入地址“福州市鼓楼区洪山园路”,得到所有可能的行政区划结果集为:\n[0081] DS1={D11}={{福建省,福州市,}}\n[0082]\n[0083] DS3={D31}={{湖北省,武汉市,洪山区}}\n[0084] S2、根据S1的MWMM得到行政区划字符串“福州市”、“鼓楼区”、“洪山[0085] 匹配得出的DS1,DS2,DS3,计算多行政区划集合的交集DSI(DS1,DS2,DS3)={{DS1∩DS2,DS1∩DS3,DS2∩DS3。分别计算DS1∩DS2,DS1∩DS3,DS2∩DS3。\n[0086] DS1∩DS2={D11}∩{D21,D22,D23,D24}={{福建省,福州市,}∩{江苏省,南京市,鼓楼区},{福建省,福州市,}∩{江苏省,徐州市,鼓楼区},{福建省,福州市,}∩{福建省,福州市,鼓楼区},{福建省,福州市,}∩{河南省,开封市,鼓楼区}}={{,,},{,,},{福建省,福州市,鼓楼区},{,,}}={福建省,福州市,鼓楼区};\n[0087]\n[0088] 因为, 变换为并集运算。\n[0089] DS1∩DS3→DS1∪DS3={{福建省,福州市,},{湖北省,武汉市,洪山区}}\n[0090]\n[0091] 因为, 变换为并集运算。即:\n[0092]\n[0093] 则有:\n[0094]\n[0095] 对{{DS1∩DS2},{DS1∪DS3},{DS2∪DS3}}的结果并运算,结果为:\n[0096]\n[0097] S3、输出解析出的行政区划。\n[0098] 应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。