闲鱼别名知识库数据挖掘与工程建设

摘要

一些与地理位置相关的业务(如租房业务),会基于地理兴趣点(以下简称POI)去构建,为该地点的用户提供更精细化的服务。

通常一个POI都会有一个官方名称,有的会有别名称呼,例如“北京大学”,又称为“ 北大”。这些POI点周围的用户通常习惯用别名去进行搜索,如果没有这些别名数据,可能会导致提供给用户的信息有误。因此如何获取现实中地址的别名,并通过别名知识系统服务于业务,就显得很重要。

《闲鱼别名知识库数据挖掘与工程建设》

图1 :别名生成模型概要图

业界目前还没有公开的地理别名数据信息,有些是通过人工采集,有些通过机器学习或深度学习对别名数据进行挖掘等,成本都比较高。本文另辟蹊径,通过二种方法对地理别名数据进行挖掘:1.基于内容上下文高维向量的别名抓取技术(如图1 所示);2. 基于收货地址相同语境词的分析技术。这些方法实现程度相对简捷和高效,成本较低。此外,对挖掘出的别名数据,建立了一套知识库系统,用于支持地理别名数据的使用。

 

关键词:

地理别名,POI,收货地址,知识库

 

一. 别名数据的挖掘

1. 根据内容上下文高维向量的别名抓取技术

有图2两个收货地址

《闲鱼别名知识库数据挖掘与工程建设》

图2:收货地址上下文比较

如何判断两个收货地址是否相似,可以通过文本相似性算法进行计算,文本相似性算法有很多,本文选择余弦相似性算法。图3为三角形的余弦函数计算公式

《闲鱼别名知识库数据挖掘与工程建设》

图3:三角函数余弦计算公式

夹角越小,相似性越大。对于二纬空间,可以用向量的点积来表示,假设向量a、b的坐标分别为(x1,y1 )、(x2,y2) ,则:

《闲鱼别名知识库数据挖掘与工程建设》

图4:二维空间向量的余弦相似性计算公式

推广到多维度,A = (x1,x2…..xn), B = (y1,y2…yn),计算公式为:

《闲鱼别名知识库数据挖掘与工程建设》

图5:多维空间向量的余弦相似性计算公式

对图2中的收货地址文本进行余弦相似性计算

① 先进行分词

A = 北京市/海淀区/颐和园路5 号/北京大学/五四路

B = 北京市/海淀区/颐和园路5 号/北大/五四路

②  列出所有的词

{北京市,海淀区,颐和园路5号,北京大学,北大,五四路}

③  计算词频向量

A = {1,1,1,1,0,1}, B ={1, 1, 1,0, 1, 1}

④  带入图5公式计算结果

《闲鱼别名知识库数据挖掘与工程建设》

结果表明这两个收货地址基本相似,但如何挖掘出别名呢?上文中,收货地址相似性计算,分词是对一条地址水平切分的,如图6所示:

《闲鱼别名知识库数据挖掘与工程建设》

图6:分词水平切分

同理,分词也可以对多条地址进行竖直切分,如图7所示:

《闲鱼别名知识库数据挖掘与工程建设》

图7:分词竖直切分

①多条地址竖直切分后,②统计原词和所有别名目标词(图7红色框内的词)在收货地址中前一个词和后一个词,③ 建立词频向量,④计算原词和别名目标词的余弦相似性(该过程只是换了切词的方式,余弦相似性计算过程保持不变)。

别名目标词定义如下:地点原名称顺序不变的所有子集,并排除一个字和自身。如“北京大学” 可能有{北大,北学,北京大}等10种别名目标词。

计算需要一定量的收货地址信息,收货地址可以选择在该地点300米内(注:收货地址要经过用户授权,不能侵犯用户的隐私)

此外,在计算时,要排除稀疏向量干扰(稀疏向量可以定义为向量中0个数超过90%)。

 

2. 收货地址相同语境词的分析

同一条收货地址中,可能会出现相同含义的两个地址名称,如“南京市玄武区北京东路江苏省广播电视总台广电城2 期东门”这条收货地址,“江苏省广播电视总台”和“ 广电城2期”同时出现,则它们可能具有相同含义。对该种情况进行归类如下:

① 获取该地点500米内的收货地址

② 对这些收货地址进行分词,包含同一名称的收货地址归为一个集合,则有如下3 种情况:

《闲鱼别名知识库数据挖掘与工程建设》

左图中,阴影部分表示名称A和名称B,同时出现在一些收货地址中,且没有出现在其他名称的收货地址中,则名称A 和名称B具有相同语境,属于别名关系。

图二中,包含各个名称的收货地址没有任何交集,则名称之间表示独立的地点。

右图中,包含名称B的地址和包含名称A/N的地址都有交集,则名称B 既不是A的别名,也不是N的别名(别名不能具有二义性)。

 

二. 别名知识库工程建设

上文中,解决了别名数据从何而来的问题。有了别名数据后,接下来要做的,就是如何在工程中方便的使用这些数据。此外,设计的系统,不只是为了存储地理别名数据,后期的其它知识数据也能方便的复用这套系统。

知识库的架构设计

1)一个词条有名称、编号、描述等基本信息,但有些词条可能不止一种含义,如“苹果” 既表示一种水果,也可以表示为手机。因此词条必须限定在具体的条件下,才不会有二义性,词条表结构设计如图9所示:

《闲鱼别名知识库数据挖掘与工程建设》

图9:知识库词条表示

2)此外,词条与词条之间可能存在某种关系,如“番茄”词条和“ 西红柿”词条互为同义词关系(前提是限定在蔬菜这个条件下)。因此,还需要为词条建立关联关系,建立的关联关系也必须在一个限定条件下才有意义,其结构可以设计为图10所示:

《闲鱼别名知识库数据挖掘与工程建设》

图10:知识库结构图

这样,在这个知识系统中,除了用来存储任意的词条知识,还可以建立词条之间的关系。

现在,我们只需要把地理名称和它的别名数据,写进知识库中的词条,然后,在POI限定条件下,建立同义词关系。这样,当一个用户不管是搜索原名称,还是别名,都可以推荐出相同含义的词。

 

三. 延伸

使用机器学习,对别名数据进行挖掘。可以参考《基于兴趣点简称的检索方法研究》这篇文章,其基本思想是:提出了一种基于统计方法和分词的匹配模型,它由三个部分组成。针对不同类别的全称, 对兴趣点全称进行分类,将全称划分成机构、公司、行业、区域和未知五类单词;把单词按照长度分为六类,然后在此基础上建立隐马尔可夫统计模型; 在越频繁使用的全称越有可能产生简称的假设下,建立一个流行度统计模型[1]。

 

参考文献:

[1]《基于兴趣点简称的检索方法研究》

《闲鱼别名知识库数据挖掘与工程建设》

扫码关注【闲鱼技术】公众号

    原文作者:数据挖掘
    原文地址: https://juejin.im/entry/5afbabaa51882542821c7d15
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞