一种基于字典树的中文地理编码方法与流程

文档序号:16880789发布日期:2019-02-15 22:07阅读:153来源:国知局
一种基于字典树的中文地理编码方法与流程

本发明涉及一种地理信息编码、地理信息坐标映射技术、计算机应用领域,一种基于字典树中文地理编码方法。



背景技术:

中文地理编码不同于其他的编码方式,是将复杂多变的中文地址数据映射成计算机能识别的地理坐标形式,例如经纬度,城市区域编码等等,即将毫无关系的纯文本字符串与空间地理建立联系。无论是提供标准的地址字符串还是提供地理坐标(经纬度、城市区域编码),都能知其一,而映射出另一方。

根据调查显示,城市信息中与地理位置相关的占据着80%左右,而这些坐标大多数都是自然语言描述的,无法进行分析,这对于城市化的中国来说,是一个极大的阻碍。所以推进数字化的城市建设和发展,提出一种高效快速的解决方法——对大量的自然语言描述的地址进行高效集约的坐标编码。这种方法的提出可以方便高效的将非空间信息转化为空间坐标信息,以便gis系统分析和应用。对于有关部门来说,其提供了实时、快捷、可视化的强大工具;对于居民来说,地理信息编码给出行的民众带来了便利,使其方便容易的进行地址查找,帮助用户实现对未知区域,未知地点快速了解和查询,减少居民出行的盲目性,节约金钱,提高效率。

因此一个中文地址的建库、维护和管理来适应国内复杂多变的地址现状是非常有意义的,既能满足政府部门需求,又能满足民众出行查询定位日常生活需要。而目前中文地址标准化的工作难度体现在各个方面。由于地区不同,所以不同地区的地址使用情况复杂多变,明确标记代码和规定在少数几个国家机关使用,其他级别的由于数量大,结构极其复杂,长期以来缺乏有效的集约化标准,导致各个地区对地址的编码和使用很混乱,带有较重的地方特色,因此没有形成统一的命名规范。而且从技术层面来看,中文的编码难度要远远高于英文等其它语言。中文属于表意文字,文字和文字之间没有分隔号,相同的词语在不同的语境下存在不同的含义,这样在中文分词方面要比其他语言难的多。因此中文分词不能像英文分词那样用简单的分隔符划分,并且机械地采用一般的地址分级,这样很可能出现分词错误。

对此,在地理信息编码方法上进行了研究和分析,发现现存的地理信息编码在灵活和效率上,有着较大的缺陷,需要改进。



技术实现要素:

针对中文地理信息编码复杂、标准不统一,不能直接和地理坐标直接相互映射的问题,本发明提出了一种可以快速、准确地理信息编码方案,方案的基本算法采用的是字典树,且和一种特殊的有向图相结合来解决地理信息的编码。

本发明涉及的基本概念包括地址要素、地址要素级别和标准地址。例如一个通信地址为“浙江省杭州西湖区留和路288号”,则这个通信地址由3个地址要素组成,分别是“浙江省”,“杭州市”,“西湖区”以及“留和路288号”组成。地址要素级别是一个要素的级别,假定中国级别为1,而杭州的级别是2,西湖区级别3,其代表地址的从属关系和层级关系。

本发明解决其技术问题所采用的技术方案是:

一种基于字典树的中文地理编码方法,所述中文地理编码方法包括以下步骤:

1).地址要素级别划分,将地址要素级别划分为11级别,分别是:1级,中国;2级,省、直辖市;3级,省会、地级市;4级,区、县、地级市;5级,街道、乡镇;6级,社区、村;7级,地片、区片;8级,道路、街巷;9级,楼牌号;10级,门牌号;11级,poi标志物;

2).将标准化的字符串分割,将得到的字符串,按照地址要素级别划分;

3).构建字典树,过程如下:

3.1.构建字典树节点,构建节点类,类里实例域包含地址要素、地址要素级别、标准地址、经纬度、父地址引用、节点是否可用;

3.2.收集整理尽可能多的标准信息地址串,用于数据的构建,字典树的生成;

3.3.将整理好的标准信息地址串拆分成地址要素;

3.4.将拆分好的地址要素,标记好要素级别;将分好的要素级别持久化到数据库,以便后期构建字典树查询使用;

3.5.将标记好的地址要素,通过google地图api或者百度地图api获取当前节点的经纬度;

3.6.初始化根节点,将信息地址串拆分为地址要素,从数据库获取当前节点的要素级别,通过百度地图api获取当前地址要素节点的经纬度,将这些值初始化到根节点中;

3.7.查询地址串的要素级别为2的地址要素,初始化下级节点,并将父节点下一个指向引用指向本节点,本节点的父地址要素的引用指向父节点,并如

3.6一样将节点数据域初始化,形成二级节点;以此类推直至叶节点,完成此信息地址串的构建;

3.8.重复3.3-3.8步骤,将信息地址串拆分,然后依次建树,最后形成一个庞大的字典树;

4).信息地址串的匹配,过程如下:

4.1.信息地址串标准化,过程如下:

4.1.1.将信息地址人工拆分标记,然后送入到隐含的马尔科夫训练模型训练,通过(1)式,据统计语言设计方法,统计出某种非标准地址要素映射到标准地址要素的概率,从(2)式获得的概率,其中#是当前地址要素的在样本中的次数,估计当前的输入地址要素与标准地址要素偏差概率;

其中在(1)式中,ot为某种不标准地址要素,st为标准地址要素。

4.1.2.通过得到的马尔科夫模型标准化信息地址串,将地址串标准化;

4.2.把标准化的地址串分割成标准的地址要素,输入到步骤3)所得到的字典树,搜寻对应的叶子节点,获得叶子节点的必须信息,则完成搜索。

进一步,所述在步骤3)中,根据标准化的信息地址串,将地址串拆分,构建成字典树;在构建字典树的基础上,通过标准化信息地址串,查找到叶子节点信息,完成搜索。

本发明的有益效果主要表现在:本发明的字典树的中文地理编码,使复杂多变的中文地址在,通过隐含的马尔科夫模型进行标准化,然后将标准化的地址要素构建地址要素字典树,供查询分析使用。

附图说明:

图1是一种基于字典树的中文地理编码方法流程图;

图2是地址要素的字典树构建的模型;

图3是通过字典树搜索的过程。

具体实施方式

下面结合附图对本发明做进一步说明。

参照图1~图3,一种基于字典树的中文地理编码方法,包括以下步骤:

1).地址要素级别划分,将地址要素级别划分为11级别,分别是:1级,中国;2级,省、直辖市;3级,省会、地级市;4级,区、县、地级市;5级,街道、乡镇;6级,社区、村;7级,地片、区片;8级,道路、街巷;9级,楼牌号;10级,门牌号;11级,poi标志物;

2).将标准化的字符串分割,将得到的字符串,按照地址要素级别划分,例如“浙江省杭州市西湖区留和路288号西苑11栋303”划分地址要素集为:1级,中国;2级,浙江省;3级,杭州市;4级,西湖区;5级,留和路288号;9级,西苑1栋303;

3).构建字典树,过程如下:

3.1.构建字典树节点,构建节点类,类里实例域包含地址要素、地址要素级别、标准地址、经纬度、父地址引用、节点是否可用;

3.2.收集整理尽可能多的标准信息地址串,用于数据的构建,字典树的生成;

3.3.将整理好的标准信息地址串拆分成地址要素。例如“中国浙江省杭州市西湖区留和路288号”,地址要素为“中国”,“浙江省”,“杭州市”等;

3.4.将拆分好的地址要素,标记好要素级别,例如“中国”1级,“杭州市”2级等等;将分好的要素级别持久化到数据库,以便后期构建字典树查询使用;

3.5.将标记好的地址要素,通过google地图api或者百度地图api获取当前节点的经纬度;

3.6.初始化根节点,例如一个信息地址串为“中国浙江省杭州市西湖区留和路288号”,将信息地址串拆分为地址要素,例如要素节点“中国”,从数据库获取当前节点的要素级别,通过百度地图api获取当前地址要素节点的经纬度,将这些值初始化到根节点中;

3.7.查询地址串的要素级别为2的地址要素。初始化下级节点,并将父节点下一个指向引用指向本节点,本节点的父地址要素的引用指向父节点,并如3.6一样将节点数据域初始化,形成二级节点。以此类推直至叶节点,完成此信息地址串的构建;

3.8.重复3.3-3.8步骤,将信息地址串拆分,然后依次建树,最后形成一个庞大的字典树;

4).信息地址串的匹配,过程如下:

4.1.信息地址串标准化,过程如下:

4.1.1.将信息地址人工拆分标记,然后送入到隐含的马尔科夫训练模型训练,通过(1)式,据统计语言设计方法,统计出某种非标准地址要素映射到标准地址要素的概率,从(2)式获得的概率,其中#是当前地址要素的在样本中的次数,估计当前的输入地址要素与标准地址要素偏差概率;

其中在(1)式中,ot为某种不标准地址要素,st为标准地址要素;

4.1.2.通过得到的马尔科夫模型标准化信息地址串,将地址串标准化;

4.2.把标准化的地址串分割成标准的地址要素,输入到步骤3)所得到的字典树,搜寻对应的叶子节点,获得叶子节点的必须信息,例如邮编,经纬度,则完成搜索。

进一步,所述在步骤3)中,根据标准化的信息地址串,将地址串拆分,构建成字典树;在构建字典树的基础上,通过标准化信息地址串,查找到叶子节点信息,完成搜索。

以全国信息地理信息为例,一种基于字典树的中文地理编码方法,包括以下步骤:

1).地址要素级别划分,将地址要素级别划分为11级别,分别是:1级,中国;2级,省、直辖市;3级,省会、地级市;4级,区、县、地级市;5级,街道、乡镇;6级,社区、村;7级,地片、区片;8级,道路、街巷;9级,楼牌号;10级,门牌号;11级,poi标志物;

2).将标准化的字符串分割,将得到的字符串,按照地址要素级别划分,例如“浙江省杭州市西湖区留和路288号西苑11栋303”划分地址要素集为:1级,中国;2级,浙江省;3级,杭州市;4级,西湖区;5级,留和路288号;9级,西苑1栋303;

3).构建字典树,过程如下:

3.1.构建字典树节点,构建节点类,类里实例域包含地址要素、地址要素级别、标准地址、经纬度、父地址引用、节点是否可用;

3.2.收集整理尽可能多的标准信息地址串,用于数据的构建,字典树的生成;

3.3.将整理好的标准信息地址串拆分成地址要素。例如“中国浙江省杭州市西湖区留和路288号”,地址要素为“中国”,“浙江省”,“杭州市”等;

3.4.将拆分好的地址要素,标记好要素级别,例如“中国”1级,“杭州市”2级等等;将分好的要素级别持久化到数据库,以便后期构建字典树查询使用;

3.5.将标记好的地址要素,通过google地图api或者百度地图api获取当前节点的经纬度;

3.6.初始化根节点,例如一个信息地址串为“中国浙江省杭州市西湖区留和路288号”,将信息地址串拆分为地址要素,例如要素节点“中国”,从数据库获取当前节点的要素级别,通过百度地图api获取当前地址要素节点的经纬度,将这些值初始化到根节点中;

3.7.查询地址串的要素级别为2的地址要素。初始化下级节点,并将父节点下一个指向引用指向本节点,本节点的父地址要素的引用指向父节点,并如3.6一样将节点数据域初始化,形成二级节点。以此类推直至叶节点,完成此信息地址串的构建;

3.8.重复3.3-3.8步骤,将信息地址串拆分,然后依次建树,最后形成一个庞大的字典树;

4).信息地址串的匹配,过程如下:

4.1.信息地址串标准化,过程如下:

4.1.1.将信息地址人工拆分标记,然后送入到隐含的马尔科夫训练模型训练,通过(1)式,据统计语言设计方法,统计出某种非标准地址要素映射到标准地址要素的概率,从(2)式获得的概率,其中#是当前地址要素的在样本中的次数,估计当前的输入地址要素与标准地址要素偏差概率;

其中在(1)式中,ot为某种不标准地址要素,st为标准地址要素;

4.1.2.通过得到的马尔科夫模型标准化信息地址串,将地址串标准化;

4.2.把标准化的地址串分割成标准的地址要素,输入到步骤3)所得到的字典树,搜寻对应的叶子节点,获得叶子节点的必须信息,例如邮编,经纬度,则完成搜索。

以上阐述的是本发明给出的一个实例展现出来的一个优良结果,显然本发明不仅适合上述实施例,在不偏离本发明基本精神及不超出本发明实质内容所涉及内容的前提下可对其做种种变化加以实施。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1