微博数据的地理位置信息提取方法
【技术领域】
[0001] 本发明属于信息检索技术领域,具体涉及一种微博数据的地理位置信息提取方 法。
【背景技术】
[0002] 随着社交网络的发展,社交用户产生的数据也在以惊人的速度增多。例如, Twitter有1亿4千万的活跃用户,他们每天可以产生大约4亿的微博。Foursquare有两 千五百万的用户和30亿的check-in。大量的应用都可以从这些用户产生的数据中受益。 特别地,根据社交用户的微博去鉴定用户的地理位置信息,可以使得更高效地进行广告的 投放和推荐。比如,某一个用户的微博中出现了"Olympia Theater,Broadway Manhattan", 广告商就可以在用户发出这条微博后快速地向他发送相关的广告。更加重要的是,如果我 们基于用户发送的所有微博推测出他所有感兴趣的地点,比如"Manhattan",我们就可以提 供位置相关的推荐,比如新闻、产品、餐馆等。
【发明内容】
[0003] 本发明旨在至少解决上述技术问题之一。
[0004] 为此,本发明的一个目的在于提出一种微博数据的地理位置信息提取方法。
[0005] 为了实现上述目的,本发明的实施例公开了一种微博数据的地理位置信息提取方 法,包括以下步骤:Sl :获取地理位置信息集合和微博数据文本集合,其中,所述地理位置 信息集合中的地理位置按照行政区域逐级划分形成地理位置信息树,将每条微博与博主 一一对应的存储在所述微博数据文本集合上;S2 :从所述微博数据文本集合中的每条微博 中抽取位置信息与所述地理位置信息树中的节点进行比较,如果抽取的位置信息与所述地 理位置信息树中的某个节点的位置信息相同,将抽取的信息作为精确匹配节点,将所述精 确匹配点和所述位置信息对应的加入到候选集合中,如果收取的位置信息与所述地理位置 信息树中的某个节点的位置信息不同,则进行相似性匹配,从所述地理位置信息树找到匹 配程度最高的节点作为模糊匹配节点,将所述模糊匹配节点和所述位置信息对应的加入到 所述候选集合中;S3 :将所述候选集合进行聚合,推测在所述地理位置信息树同一层级第 一预设值数量的地理位置,推测在所述地理位置信息树不同层级第一预设值数量的地理位 置;S4 :对聚合后的所述候选集合进行信息提纯,得到精确的所述第一预设值数量的地理 位置。
[0006] 根据本发明实施例的微博数据的地理位置信息提取方法,在博主的微博信息抽取 地理位置信息,将地理位置信息与分层次的行政区划信息进行对比,根据对比结果,针对性 的为博主提供广告服务。
[0007] 另外,根据本发明上述实施例的微博数据的地理位置信息提取方法,还可以具有 如下附加的技术特征:
[0008] 进一步地,还包括步骤:S5 :当所述博主的微博内容更新或所述地理位置信息树 的节点更新时,将更新的内容相应的加入到所述微博数据文本集合或所述地理位置信息 树,并根据更新后的所述微博数据文本集合和更新后所述地理位置信息树重新计算所述第 一预设值数量的地理位置。
[0009] 进一步地,所述步骤Sl进一步包括:Sll :对所述地理位置信息树从上往下给每一 个节点赋了一个Dewey码,其中根节点的Dewey码是1,对于每一个节点,不断地把父亲节 点的Dewey码附加在自己的Dewey码后面得到最后一串Dewey码,比较两个节点n;,Ii j的 Dewey码,如果叫的Dewey码是n 的Dewey码的子串,那么n ;就是n 的祖先,其中i和j均 为自然数;S12 :建立倒排索引,对于地理位置,由于同名的情况,可以对应到所述地理位置 信息树上的多个Dewey码,建立倒排索引;S13 :每一条数据包含微博的文本和发送微博的 博主对应存储,每个博主对应多条微博文本。
[0010] 进一步地,所述步骤S2进一步包括:S211 :定义精确匹配和所述精确匹配节点:从 所述微博数据文本集合选取一条微博和所述地理位置信息树进行比较,如果所述地位位置 信息树的某个节点和所述微博的所述子串精确匹配,定义所述地理位置为精确匹配实体, 定义所述节点为所述精确匹配节点;S212 :定义相似性:从所述微博数据文本集合选取一 条微博m,用E(m)表示所述精确匹配实体的集合,给定一个候选的位置节点n,用E(n)来 表示从根节点到所述节点n之间的所有位置节点,在E(m)和E(n)之间利用第一相似性
其中|E(m) n E(n) I是两个集合的交集,|E(m) U E(n) I是两个集合E(m)的并集;S213 : 找到精确匹配节点:对于每一个地位位置e,利用所述倒排列表枚举所述微博的子串,对 于每一个所述子串,检测是否出现在所述倒排索引里,如果出现在所述倒排列表中,取出 所述倒排索引对应的节点,所述节点为候选的所述精确匹配节点,根据所述第一相似性 函数计算出第一相似值,将所述第一相似值和所述精确匹配节点对应存储在所述候选集 合中;S221 :定义模糊匹配和所述模糊匹配节点:从所述微博数据文本集合选取一条微 博,给定第二相似性函数和阈值,如果所述地理位置信息树中的某个节点和所述微博的 一个子串之间根据所述第二相似函数计算出的相似值不大于所述阈值,把所述地理位置 定义为模糊匹配实体,在所述地理位置信息树中,把所有标记为模糊匹配实体对应的节 点定义为所述模糊匹配节点;S222 :定义相似性:首先定义标准化之后的编辑距离,表示
地理位置相似,给定一个地理位置,所述地理位置也可能有多个相似的子串,保留最相似 的一个,用E' (m)来表示所有<s,e>的集合,其中s是一个子串,e是一个位置实体,并 且满足不存在以下情况:有一对〈8,6'>,使得£03(8,6')>£03(8, 6),有一对〈8', e>,使得EDS (s',e) > EDS (s,e),得到所述E' (m)后,用所述第二相似性函数衡量所
在位置实体上的投影;S223 :找到模糊匹配的节点:把相似性进行转换可以得到,两个地理 位置是相似的等价于它们的编辑距离不大于所述阈值T,把每个地理位置分成了 T +1个 片段,基于鸽巢原理,如果所述微博中的一个子串和一个所述位置实体相似,所述子串包含 所述分割后的片段之中的一个,根据所述倒排索引,对于给定一个微博,枚举所述微博的子 串,检查所述微博的子串是否出现在所述倒排索引中,如果有一个子串出现在所述倒排索 引之中,检查所述倒排索引中每个地理位置是否和所述子串相似得到第二相似值,如果相 似,把所述地理位置对应的模糊匹配节点和相似值加入到所述候选集合。
[0011] 进一步地,所述步骤S3进一步包括:S31 :把用户发的微博集合,记为M = {nv m2, ...,m|M|},每一条微博叫有一个候选位置的集合,其中包括了所述精确匹配和所述模 糊匹配的位置节点,把这个集合记为N(Hl1),所述N(Hl1)中的每一个候选的位置都和Hl 1有所 述第一相似值和所述第二相似值;S32 :推测用户在同一层级的所述第一预设值数量的地 理位置:s321 :定义覆盖值:一个节点的覆盖值指的是所有它覆盖的微博的相似值的总和, 定义如下:C(n) = E |M|C(n,IHi),其中C(n,IHi)是指所述节点n对微博IH i的覆盖,表
节点的集合;S323 :找到所述Ntest集合:利用贪心的算法,具体按照如下规则迭代地选择节 点:找到覆盖值最大的节点n ;从剩下的微博里面找到覆盖值最大的下一个节点;使用了区 间最值查询算法RMQ来计算C (n,Hi1);进行迭代,得到所述第一预设值数数量的节点;S33 : 推测不同层次的top-k位置:S331 :定义概率Pq.,给定一个节点n和它的子节点集合,记
述界?大,选择所述节点n选择所述第一预设值数量的地理位置,如果所述节点n的 信息熵比所述界S小,检查所述节点n的孩子节点选择所述第一预设值数量的地理位 置;S334 :定义第二Ntest集合:在所述信息熵H(n)的限制下,从不同层次的地点中选出 所述第一预设值数量的地理位置,使得覆盖值达到最大,所述第二N test如下定义:第二
H(n) >B ;S335 :找到第二Nbest集合,利用了一种优先最佳的贪心算法,具体如下:S3351 :检 查根节点,计算所述根节点的覆盖值和信息熵,并把所述根节点加入到一个优先队列0中; 53352 :弹出优先队列g中覆盖值最大的节点:如果所述优先队列g的节点的信息熵的值大 于所述界值:B,把所述节点加入到结果集合R u中,如果结果所述集合R u中已经有了第一预 设值数量的地理位置,结束算法,如果所述节点的信息熵不大于所述界值?,考查所述节点 的孩子节点,计算所述孩子节点的覆盖值并把所述孩子节点插入到所述优先队列g中去; 53353 :重复步骤S3352,直到我们找到了所述第一预设值数量的节点,作为不同层次的所 述第一预设值数量的地理位置。
当前第1页
1 
2 
3 
4 
5