论文部分内容阅读
摘要:随着智能移动设备的普及,地理信息数据的应用更加广泛,整合多源的数据,才能更好的使用。该文采集了源自社交网络的地理信息数据,并使用距离和名称两种匹配方法,将数据整合。
关键词: POI;地理信息;社交网络
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)21-0203-01
随着移动设备的不断普及,地理信息(POI)数据的用处已经越来越广泛。任何移动设备应用,很多需要位置信息匹配周边环境。因此,POI数据拥有广泛的应用空间,本文将不同源的POI数据整合。一般的POI数据,有POI名称、纬度、经度、、地址、分类、邮编、联系电话、网址、营业时间等。
1 POI数据采集
本文选择的POI数据源是Facebook和Foursquare的。其中Facebook作为主要数据来源,利用Facebook提供的API和FQL,就可以获取所需要的POI数据。
1.1 Facebook的Graph API和FQL
Facebook的Graph API是获取其网站数据的主要方式。它是一个基于HTTP的简单API,可以用来查询数据,发布信息,上传照片和各种应用程序可能需要执行的其他任务。Graph API由以下内容组成:
·Nodes(比如一个用户,一个图片,一个页面,评论)
·Edges(Nodes之间的联系,如页面的照片或照片的评论)
·Fields(Nodes的信息,如用户的生日,或者页面的名称)。
所有的请求都会被送往graph.facebook.com。每个节点都有唯一的ID以便API访问,同时还可以访问属于节点的联系。
FQL是Facebook的查询语言,开发人员可以使用SQL风格来查询的GraphAPI的数据。与SQL有所区别的是,FQL的FROM子句中只能包含一个表。
1.2 Foursquare的API
Foursquare的API使用URL访问相应的资源。其许开发者在数据库中查找包括提示、照片、签入计数等各种信息,还可以搜索某个固定位置附近的点及周边推荐。
Foursquare的另一个特点,是可以直接使用自然语言的方式,搜索某个类型的地点(如果数据库当中存在的话),并且添加各类变量。
2 POI数据的整合
从社交网络获取数据后,还需要预先处理,预处理的目的如下:
1)验证POI数据集
核查是重要原因所有的POI数据是用户生成的,需要了解POI数据的有效与否。
2)匹配并去除冗余
对于冗余数据导致不可靠的和不必要的数据POI数据,需要加以处理。
3)全局了解POI数据集
需要建立相结合的POI数据,但是,哪些类别是有用的,哪些是没有用的。系统采用的技术方案分为以下几个步骤:
对于起初的POI数据匹配,首先将不同来源的数据抓取到数据库暂存,因为API的关系,可以确定这些数据的字段,并且可以直接存入数据库。
此后,将某一个源的数据作为蓝本,通常使用数据量更大的,这样可以减轻匹配的工作量,这里假设以Foursquare数据作为蓝本,则需要对每一条新的Facebook数据,采取以下两种算法进行匹配,从而决定其是否为冗余数据,架构如图1所示。
在此基础上两个标准,建立一个基于距离和名称的标准来判定这两条数据是否匹配。POI数据匹配的算法如下:
1)用Facebook POI数据与Foursquare的数据进行比对;
2)如果多个结果产生:
A. 检查POI位置之间的距离,并找到最近的POI
B. 最近的POI后,选择比较之间的两个POI数据的名称
C. 如果匹配FOUND选择匹配的数据集D中的POI和存储。
D. 否则选择下一个最近的POI并转到步骤B。
距离匹配:
不同源的社交网络产生相同POI数据非常常见,因此选择一定的阈值范围作为基准,然后计算该范围内的POI与当前POI数据之间的欧几里得距离。步骤如下,采取Foursquare数据作为基准,从Facebook数据查询的POI,找到所有最近的POI数据,并计算它们之间的距离。检查POI数据之间的最短距离。当你有两个POI显示相同的位置,如果两者完全在同一位置,则可以确定是同一个数据,如果不是,则再使用名称匹配。
名称匹配:
使用该POI的名称来匹配是匹配算法的第二个步骤。两个源的不同数据,必然导致POI的名称有很多变化。为了匹配,使用以下两个方式来精确匹配:
1)标准子串匹配(LCS)
2)Levenshtein距离
在相关技术中的讨论,Levenshtein距离是测量两个序列之间的差异的字符串。通俗的说,就是改变一个字成其他字所需的单字符编辑操作(即插入,删除或替换)的最小数量。标准的子字符串匹配是常见的算法,将名字划分程子串与字符串源的每一个部分匹配。
3 结论
通过以上这些技术,实现了对源于社交网络的地理信息的初步整合。不过,还有一些可以完善和改进的地方,特别是对于大量的冗余的处理。这就有待进一步的研究来实现了。
参考文献:
[1] "Grphapi developers documentation," ,Facebook Inc., https://developers.facebook.com/docs/graph-api, 2016-04-10.
[2] "Documentation of Foursquare API," ,Foursquare, https://developer.foursquare.com/..2016-04-10.
[3] Navarro G. A guided tour to approximate string matching. ACM computing surveys (CSUR), 2001,33(1):31-88.
关键词: POI;地理信息;社交网络
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)21-0203-01
随着移动设备的不断普及,地理信息(POI)数据的用处已经越来越广泛。任何移动设备应用,很多需要位置信息匹配周边环境。因此,POI数据拥有广泛的应用空间,本文将不同源的POI数据整合。一般的POI数据,有POI名称、纬度、经度、、地址、分类、邮编、联系电话、网址、营业时间等。
1 POI数据采集
本文选择的POI数据源是Facebook和Foursquare的。其中Facebook作为主要数据来源,利用Facebook提供的API和FQL,就可以获取所需要的POI数据。
1.1 Facebook的Graph API和FQL
Facebook的Graph API是获取其网站数据的主要方式。它是一个基于HTTP的简单API,可以用来查询数据,发布信息,上传照片和各种应用程序可能需要执行的其他任务。Graph API由以下内容组成:
·Nodes(比如一个用户,一个图片,一个页面,评论)
·Edges(Nodes之间的联系,如页面的照片或照片的评论)
·Fields(Nodes的信息,如用户的生日,或者页面的名称)。
所有的请求都会被送往graph.facebook.com。每个节点都有唯一的ID以便API访问,同时还可以访问属于节点的联系。
FQL是Facebook的查询语言,开发人员可以使用SQL风格来查询的GraphAPI的数据。与SQL有所区别的是,FQL的FROM子句中只能包含一个表。
1.2 Foursquare的API
Foursquare的API使用URL访问相应的资源。其许开发者在数据库中查找包括提示、照片、签入计数等各种信息,还可以搜索某个固定位置附近的点及周边推荐。
Foursquare的另一个特点,是可以直接使用自然语言的方式,搜索某个类型的地点(如果数据库当中存在的话),并且添加各类变量。
2 POI数据的整合
从社交网络获取数据后,还需要预先处理,预处理的目的如下:
1)验证POI数据集
核查是重要原因所有的POI数据是用户生成的,需要了解POI数据的有效与否。
2)匹配并去除冗余
对于冗余数据导致不可靠的和不必要的数据POI数据,需要加以处理。
3)全局了解POI数据集
需要建立相结合的POI数据,但是,哪些类别是有用的,哪些是没有用的。系统采用的技术方案分为以下几个步骤:
对于起初的POI数据匹配,首先将不同来源的数据抓取到数据库暂存,因为API的关系,可以确定这些数据的字段,并且可以直接存入数据库。
此后,将某一个源的数据作为蓝本,通常使用数据量更大的,这样可以减轻匹配的工作量,这里假设以Foursquare数据作为蓝本,则需要对每一条新的Facebook数据,采取以下两种算法进行匹配,从而决定其是否为冗余数据,架构如图1所示。
在此基础上两个标准,建立一个基于距离和名称的标准来判定这两条数据是否匹配。POI数据匹配的算法如下:
1)用Facebook POI数据与Foursquare的数据进行比对;
2)如果多个结果产生:
A. 检查POI位置之间的距离,并找到最近的POI
B. 最近的POI后,选择比较之间的两个POI数据的名称
C. 如果匹配FOUND选择匹配的数据集D中的POI和存储。
D. 否则选择下一个最近的POI并转到步骤B。
距离匹配:
不同源的社交网络产生相同POI数据非常常见,因此选择一定的阈值范围作为基准,然后计算该范围内的POI与当前POI数据之间的欧几里得距离。步骤如下,采取Foursquare数据作为基准,从Facebook数据查询的POI,找到所有最近的POI数据,并计算它们之间的距离。检查POI数据之间的最短距离。当你有两个POI显示相同的位置,如果两者完全在同一位置,则可以确定是同一个数据,如果不是,则再使用名称匹配。
名称匹配:
使用该POI的名称来匹配是匹配算法的第二个步骤。两个源的不同数据,必然导致POI的名称有很多变化。为了匹配,使用以下两个方式来精确匹配:
1)标准子串匹配(LCS)
2)Levenshtein距离
在相关技术中的讨论,Levenshtein距离是测量两个序列之间的差异的字符串。通俗的说,就是改变一个字成其他字所需的单字符编辑操作(即插入,删除或替换)的最小数量。标准的子字符串匹配是常见的算法,将名字划分程子串与字符串源的每一个部分匹配。
3 结论
通过以上这些技术,实现了对源于社交网络的地理信息的初步整合。不过,还有一些可以完善和改进的地方,特别是对于大量的冗余的处理。这就有待进一步的研究来实现了。
参考文献:
[1] "Grphapi developers documentation," ,Facebook Inc., https://developers.facebook.com/docs/graph-api, 2016-04-10.
[2] "Documentation of Foursquare API," ,Foursquare, https://developer.foursquare.com/..2016-04-10.
[3] Navarro G. A guided tour to approximate string matching. ACM computing surveys (CSUR), 2001,33(1):31-88.