专利名称:电子地图兴趣点数据冗余检测方法和系统的制作方法
技术领域:
本发明涉及信息处理技术领域,特别涉及一种电子地图兴趣点(Point of Interest, POI)数据冗余检测方法和系统。
背景技术:
兴趣点(Point Of Interest, POI)数据,通常包括名称、类别、经度、乡争 度等信息。电子地图POI数据中,通常还会包含地址信息。这些信息是构成电 子地图信息的最重要的元素。 一般地, 一条POI数据代表电子地图中的一个位
置实体。
在现有的电子地图服务中,例如各大网站提供的电子地图服务中,很多电 子地图数据存在冗余。所谓冗余,是指两条或多条POI数据代表电子地图中的 同一位置实体。例如在图1所示的某一网站提供的电子地图服务中,以"北京 海淀区全聚德"进行搜索所得到的结果中,显示出冗余数据的存在。如图1 中的搜索结果1和3,尽管是两条POI数据,但是实际上代表的是地图中的同 一位置。这两条冗余数据坐标相同,名称和地址分别如下
结果l名称全聚德(玉泉路)
地址北京市海淀区复兴^各44号
结果3 名称全聚德玉泉路店
地址北京市海淀区复兴^各44号
类似的,图1中的搜索结果4和5,也是冗余数据。
如图2所示的另一网站提供的电子地图服务中所示,同样以"北京海淀 区全聚德,,进4亍搜索所得到的结果中,也存在冗余数据。如图2中的搜索结 果A和B,尽管是两条POI数据,但是实际上代表的是地图中的同一位置。 这两条冗余数据坐标相同,名称和地址分别如下
结果A名称全聚德(五道口店)
地址北京市海淀区中关村东路1号科技大厦AC座1层
结果B名称全聚德烤鸭店(清华园店)
地址北京海淀区中关村东路1号院(清华科技园科技大厦A
座1楼)
另外,还存在由于名称或地址描述中的错字引起的冗余数据,在此不再列举。
但是,现有技术中,还没有提出对上述电子地图兴趣点数据进行冗余检测 的方法。
发明内容
本发明实施例的目的是提供一种电子地图兴趣点数据冗余检测方法和系 统,以实现对电子地图兴趣点数据的冗余检测。
为解决上述技术问题,本发明实施例提供一种电子地图兴趣点数据冗余检
测方法和系统是这样实现的
一种冗余检测方法,包括对POI数据的名称进行二元切分,为切分的二 元词建立倒排索引,并为POI数据根据倒排索引中的出现频率最低的词搜索相 似POI数据;对搜索到的具有名称相似关系的POI数据,进行名称相似度计 算和地址相似度计算;根据POI数据的名称相似度和地址相似度得到总相似 度;将总相似度与预设的阈值比较,大于预设阈值的,判定对应POI数据为冗 余数据。
上述方法基础上,所述名称相似度计算,包括采用基于编辑距离的方式计
算,采用基于编辑距离的方式如下表示S名,J(U");其中,S
|x| x |y|
"表示基于编辑距离的相似度值,X和Y分别代表两个字符串,Edit(X, Y) 代表X和Y的编辑距离,|X|、 lYl分别表示字符串X、 Y的长度;或者,采用
基于Jaccard系数的方式计算,所述基于Jaccard系数的方式如下表示 S 2=f^;其中,S"表示基于Jaccard系数的相似度值,X和Y分别代表
两个字符串,XUY代表两个字符串的所有字符,XHY代表来两个字符串所 有相同的字符,取绝对值表示包含的字符的长度。 上述方法基础上,所述进行名称相似度计算,包括结合基于编辑距离的方
式与基于Jaccard系数的方式,并采用F-度量计算,如下表示
~~^——F -表示结合基于编辑距离的方式与基于Jaccard系数的 3丄+ (1 —3)丄
S名l S名2
方式计算的名称相似度,3表示预先设定的加权值。
上述方法基础上,所述进行地址相似度计算,包括采用基于Jaccard系
数的方式计算,所述采用基于Jaccard系数的方式计算如下表示Sw =
|X(1Y| —UY|;
其中,S旬表示基于Jaccard系数的相似度值,X和Y分别代表两个字符串, X U Y代表两个字符串的所有字符,X n Y代表来两个字符串所有相同的字符, 取绝对值表示包含的字符的长度。
上述方法基础上,所述进行地址相似度计算,包括根据预置的地址词库, 对POI数据的地址进行分词;对于分词后第一 POI数据的地址元素集合中每 一地址元素,计算与分词后第二 POI数据的地址元素集合中每一地址元素的相 似度值,并找出最大相似度值,并作为所述第一POI数据中该地址元素与第二 POI数据地址元素的相似度值;将第一 POI数据地址中每一地址元素与第二 POI数据地址元素的相似度值累加,再除以两个POI数据中地址元素个凄t平均 值,作为地址相似度值S 地2。
进一步,上述方法基础上,对于分词后第一 POI数据的地址元素集合中 每一地址元素,采用基于编辑距离的方式计算与分词后第二 POI数据的地址元
素集合中每一地址元素的相似度值。
进一步,上述方法基础上,所述地址词库包括预先设定的地名词库,该地
名词库中包括预先设定的地名数据;相应地,才艮据预置的地名词库,对POI 数据的地址按照预置的地名词库存在的地名数据进行分词。
进一步,上述方法基础上,所述地址词库还包括预先设定的地址后缀词库, 该地址后缀词库中包括预先设定的地址后缀凄t据;相应地,对于不在地名词库 中的地址,按照地址后缀词库将其分为一个词。
进一步,所述进行地址相似度计算,包括结合基于Jaccard系数的方式与 基于分词的方式并采用F-度量计算,如下表示Fw=^~~^——其中,
F地表示结合基于Jaccard系数的方式与基于分词方式计算的地址相似度,3表 示预先设定的加权值。
上述方法基础上,所述得到总相似度之后,比较总相似度与预设的阈值之 前,本方法还包括如果所述POI数据的电话相同,则将所述总相似度乘以一 个大于1的系数。
上述方法中,所述得到总相似度之后,比较总相似度与预设的阈值之前, 本方法还包括如果POI数据的名称和/或地址的相应位置的数字不同,则将 总相似度置为0。
上述方法中,所述得到总相似度之后,比较总相似度与预设的阈值之前, 冬方法还包括对于两个POI数据存在名称子串的情况,如果根据预置的位置 实体词库判断剩余串中包括表示位置实体的词语,则将总相似度置为0;或者,
如果剩余串中包括预置的特别后缀词库中的后缀,且后缀前为空或为地名,则 将总相似度乘以一个大于1的系数;
如果剩余串中包括预置的特别后缀词库中的后缀,且后缀前为不空,也不 为地名,则将总相似度置为O。
上述方法中,所述得到总相似度之后,比较总相似度与预设的阈值之前, 本方法还包括对于两个POI数据存在名称子序列的情况,则将总相似度乘以 一个大于1的系数。
一种冗余^r测系统,包括搜索单元,用于对POI H据的名称进行二元 切分,为切分的二元词建立倒排索引,并为POI凄史据根据倒排索引中的出现频 率最低的词搜索相似POI数据;名称相似度计算单元,用于对搜索到的具有名 称相似关系的POI数据,进行名称相似度计算;地址相似度计算单元,用于对 搜索到的具有名称相似关系的POI数据,进行地址相似度计算;总相似度计算 单元,用于根据POI数据的名称相似度和地址相似度得到总相似度;冗余数据
判断单元,将总相似度与预设的阈值比较,大于预设阈值的,判定对应POI 数据为冗余数据。
一种冗余^r测方法,包括对POI lt据的地址进行二元切分,为切分的 二元词建立倒排索引,并为POI数据根据倒排索引中的出现频率最低的词搜索 相似POI数据;对搜索到的具有地址相似关系的POI数据,进行名称相似度 计算和地址相似度计算;根据POI数据的名称相似度和地址相似度得到总相似 度;将总相似度与预设的阔值比较,大于预设阈值的,判定对应POI数据为冗 余数据。
由以上本发明实施例提供的技术方案可见,本发明对POI数据的名称进行 二元切分,为切分的二元词建立倒排索引,并为POI数据根据倒排索引中的出 现频率最低的词搜索相似POI数据;对搜索到的具有名称相似关系的POI数 据,进行名称相似度计算和地址相似度计算;将所述POI数据的名称相似度和 地址相似度取平均值,得到总相似度;将总相似度与预设的阈值比较,大于预 设阈值的,判定对应POI数据为冗余数据。这些对输出的处理充分利用了 POI 数据的重要信息,并通过分别计算这些重要信息的相似度和31入对相关信息的 考虑,整合得到POI数据的相似度。这个相似度可以非常好的刻画POI数据 的冗余情况,利用这个相似度可以检测出POI数据的所有冗余数据。同时,本 发明实施例结合每种信息的实际情况加入一些规则,可以有效避免错误情况, 保证冗余^r测结果的准确率。
图1为现有技术中某一网站提供的电子地图服务;
图2为现有技术中某一网站提供的电子地图服务;
图3为本发明方法实施例的流程图4为本发明系统一个实施例的框图5为本发明系统一个实施例的框图6为本发明系统一个实施例的框图7为本发明系统一个实施例的框图8为本发明系统一个实施例的框图; 图9为本发明系统一个实施例的框图; 图IO为本发明系统一个实施例的框图; 图11为本发明系统一个实施例的框图; 图12为本发明系统一个实施例的框图; 图13为本发明系统一个实施例的框图; 图14为本发明系统一个实施例的框图; 图15为本发明系统一个实施例的框图。
具体实施例方式
本发明实施例提供一种电子地图兴趣点数据冗余检测方法和系统。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方
式对本发明实施例作进一步的详细说明。
图3示出了本发明冗余^r测方法一实施例的流程图,如图3所示,该方法
实施例包括
301:对POI数据的名称进行二元切分,为切分的二元词建立倒排索引(所 述对于名称的二元切分以及倒排序可以对全部POI数据中每一 POI数据执 行),并为POI数据根据倒排索引中的出现频率最低的词搜索相似POI数据。
这里所说的二元切分,即将名称按照步长为2进行切分,这样,长度为n (n个字)的名称;故切分为n-l个二元词,且前一个词和后一个词有一个7>共 字。举个例子加以说明,对于"清华科技园搜狐",进行二元切分后为"清华/ 华科/科41/4支园/园^/搜狐"。
如上面的例子,分别对清华、华科、科技、技园、园搜、搜狐这些字段建 立倒排索引。倒排索引是一种索引的组织方式,例如,对于词A, A出现在很 多POI数据的名称中,则A的倒排索引为
A: POI数据l名称,POI数据2名称,...
为POI数据根据倒排索引中的出现频率最低的词搜索相似POI数据。例 如为某一 POI数据检索具有相近名称的POI数据,可以对纟皮检索的POI数据
的名称进行二元切分,然后切分后的二元词中频率最少的一个或几个二元词进 行检索,检索出需要进行计算相似度的那些数据。例如对于上面的名称,可以 只根据出现频率较低的"园搜"和"搜狐"进行检索,而不对"清华"、"科技"
这类出现频率较高的词进行检索。其原因在于出现频率较小的二元词语一般 不是一个词语,但它同样包含了一定的语序信息,从而它可以作为一种名称的 代表。同时,冗余数据之间往往拥有相同的且频率不高的二元词语。以这些词 语作为特征来检索,可以很好的将有可能冗余的POI数据汇集在一起,而将其 它不太可能是冗余的POI数据排除,因此可以大大地减少冗余检测的计算量。 302:对搜索到的具有名称相似关系的POI数据,进行名称相似度计算。 冗余数据的名称一般具有很好的相似度,名称相似度较低的POI数据不大 可能是冗余数据。
进行名称相似度的计算,具体的,可以采用基于编辑距离相似度的计算,
也可以采用基于Jaccard系数的相似度计算。
基于编辑距离相似度的计算,可以通过如下公式表示
<formula>formula see original document page 16</formula>
S w表示基于编辑距离的相似度值,X和Y分别代表两个字符串,其中 Edit(X, Y)是X和Y的编辑距离,|X|、 lYl分别表示字符串X、 Y的长度, 如X二abcde,则IX—5。 |X|1/2 x|lf 2表示两个字符串的平均长度。
编辑距离是一个字符串经过插入、替换、删除操作变成另一个字符串的最 少操作次数,如对于abcd和abdd。串abcd把c替换成d,就变成了串abdd。 因此它们的编辑距离为1。
公式(l)的原理是,首先计算两个字符串的编辑距离,它表示了两个字 符串的远近程度。值越大,表示编辑距离越远。之后,用两个字符串的平均长 度减去编辑距离,再除以两个字符串的平均长度,就得到这两个字符串的相似 度值。相似度值越大,表示两个字符串越接近。
基于Jaccard系数的相似度计算,可以通过如下公式表示
<formula>formula see original document page 17</formula>(2)
公式(2)中,S名2表示基于Jaccard系数的相似度值,XUY代表两个字 符串的所有字符,XflY代表两个字符串所有相同的字符。取绝对值表示集合 的大小。例如Xibcde, Y=acdef,则,
XUY = a, b, c, d, e, f
|X U Y| = 6
XflY = a, c, d, e
|X n Y| = 4
这个公式是计算字符串相似度的一种方式,它不考虑字符的顺序。只是用 两个字符串交集的字符数除以它们并集的字符数,这个值越大,表示字符串越相似。
302中,对于名称相似度的计算,可以采用基于编辑距离相似度的方式, 也可以采用基于Jaccard系数的相似度的方式。当然还存在其它文本相似度计 算的方式,也可以引入本发明实施例中,在此不再介绍。
此外,应该注意的是,基于编辑距离的相似度计算考虑了字符串的语序, 而基于Jaccard系数的相似度计算不考虑字符串的语序。两种方式各有优点和 缺点,因此,这里,给出一种综合利用上述两种计算方式来计算名称相似度的 方式。设上述两种方式,即公式(1)和公式(2)的结果分别为Si和S2,则 可以采用F-度量,具体如下面公式<formula>formula see original document page 17</formula>
这样得到的结果F名实际上是S "和S名2的加权调和平均值。加权值3可 以根据经验来设定,3越大,表示S,越重要;3越小,表示S2越重要。
303:对搜索到的具有名称相似关系的POI数据,进行地址相似度计算。 对于地址相似度的计算,可以采用多种方式,这里列举两种。 一种是直接利用基于Jaccard系数的方式计算两个地址的相似度,该方式
17
与前面提到的利用Jaccard系数计算两个名称相似度类似,可以如下表示
s —刚 (4)
S地,表示基于Jaccard系数的相似度值。
另一种是基于分词的计算方法。POI凄t据的地址在分词后,地址由分词后 的多个地址元素构成。对于一个POI数据(第一 POI数据)分词后的地址元 素集合中每一地址元素,在另一 POI数据(第二 POI数据)分词后的地址元 素集合中寻找相似的地址元素。具体的,可以采用基于编辑距离的方式计算相 似度。之后,将最大相似度值作为所述第一POI数据中该地址元素与第二POI 数据地址元素的相似度值。依此,计算第一 POI数据中每一地址元素与第二 POI数据地址元素的相似度值。之后,将计算的每一地址元素的相似度值累加, 最后除以两个POI数据中地址元素个数的平均值,得到第一 POI数据地址与 第二 POI数据地址的相似度值。基于分词的方式计算得到的地址相似度可以用 S地2表示。其中所述地址元素个数的平均值可以是算术平均值(将两个POI 数据中地址元素个数求和再除以2)、几何平均值(两个POI数据中地址元素 个数乘积的开方)、平方平均值等。
此外,还可以综合上述两种方式,采用F-度量进行组合,然后得到地址 的相似度。可以如下表示
显然地,302和303之间没有先后顺序关系。
特别地,如果这里采用包含基于分词的方式进行计算,则,该步骤之前, 还需要以下30A步骤。
30A:根据预置的地址词库,对POI数据的地址进行分词。 整体说来,POI数据中,地址的相似性较低。 一般地址的写法多样而且比 较复杂,还可能出现多字、少字及错字的情况。如果仅仅把地址处理为简单字 符串,用一些字符串匹配算法(如后续介绍的最大公共子序列,编辑距离等)
来计算相似度,由于上述问题的存在,效果会比较差。
一般地,地址是由许多地址元素(具有最小地理涵义的单元)按照包含的 偏序关系组合而成,这些地址元素和它们的关系构成了地址的特征。因此在后 续计算地址的相似度时,应该首先将地址进行分割,将所有地址元素分割出来, 即是这里所说的地址分词。
本发明实施例中,地址分词可以采用地址词库实现。地址词库在这里可以 通过预先设定得到。这里所说的地址词库可以包括地名词库,或进一步的包含 地址后缀词库。
首先,关于地名词库,该词库中存有预先设定的地名。所说的地名是当前
村,公路、街道、楼盘、社区等的名称)。地名一般是专有名词。
按照地名词库,可以对POI数据的地址进行分词。即,按照地名词库中存 在的地名,将POI数据的地址按词分割为不同的词。例如可以将地址"北京市 海淀区五道口"分割为"北京市/海淀区/五道口",这里,北京市、海淀区、五 道口都可以是按照地名词库进行分割后的结果。
其次,关于地址后缀词库。地址元素常常以一些固定词语结尾,如北京市、
海淀区、三单元等。这些固定词语包括区,号,市,省,室,楼区,园,街,
单元,元,幢,路,大街,村,小区,寓,花园,公寓等,这里称之为地址元 素的后缀。因此,可以预先设置后缀词库,以存储这类地址后缀。
按照地址后缀词库,可以进一步实现对POI数据中的地址分词。例如对于
不在地名词库中的地址,可以按照后缀词库将其分为一个词。或者,按照地名 词库分词后的剩余地址中,将属于地址后缀词库的单个地址后缀去除,或将属 于地址后缀词库的单个地址后缀与所述单个后缀之前的地址元素合并。这是由
于, 一般单个后缀不能构成一个地址元素如"楼","区,,等,需要将它们去 除或与其他地址元素合并。例如,可以将不能成为独立地址元素的后缀与前面 的一个地址元素进行合并,形成"某某楼"、"某某区"。
另外,应当注意的是,地址中常常包括数字类型的地址。而数字类型地址
元素的后缀常常被省略,改写或写错,如3号楼1605号会被省略为3-1605、 1 层会被改写为l楼。对于这类数字地址元素时,这里,可以将数字单独进行分 割,即如果一串数字(包括字母)后如果不是后缀,则将这串数字作为一个地 址元素。例如,31号楼,号楼属于常用后缀,则31号楼被整个切分出来;如 果只有31,则把31切分出来。再例如,如果是31大,由于大不是后缀,则 单独将31切分出来。按照上述规则,对于"3号楼1605号"和"3-1605"这 两个地址,3号楼1605号被切分为3号楼和1605号,而3-1605被切分为3 和1605。后面在判断时,如果数字部分都相等,可以判断两个地址等^f介。例 如3和3号楼的3相同,1605和1605号的1605相同,则这两个地址等Y介。
另外,在有些POI数据的地址中,后缀常常被省略。如北京市会被简化为 北京,海淀区会被简化为海淀。基于这一特点,在地址分词处理中,还可以将 按照后缀词库进行分词的词中的后缀去除,以与其它不包含后缀词的地址分词 后的词尽量保持一致,从而利于后续地址相似度的计算。例如对于常用后缀, 如市、区等,就可以把去除后缀的部分保留下来,例如对于分词后的北京市可 以只保留北京,对于分词后的海淀区可以只保留海淀。当然,对于地名词库中 存在诸如"北京市"、"海淀区,,这类词的情况,相应地,可以是将按照地名词 库分词后的词,再按照后缀词库去除其后缀。
30A并没有在图3中显示出。
304:根据所述POI数据的名称相似度和地址相似度得到总相似度。 本实施例中通过将所述POI数据的名称相似度和地址相似度取平均值的 方式,得到总相似度。其中取平均值可以有多种方式,这里,仍然列举采用 F-度量的方式说明。采用F-度量对名称相似度和地址相似度取平均,得到的结 果作为总相似度。设F名为名称相似度,F地为地址相似度,则总相似度F总如 下计算
类似的,加权值3可以根据经验来设定,d越大,表示名称相似度F名越重
要;3越小,表示地址相似度f地越重要。可见,总相似度f总实际上是名称相 似度f》和地址相似度f ^的加权调和平均值。
在得到总相似度之后,还可以引入其它规则对得到的总相似度进行修正。 以下介绍这些规则。这些规则可以单独采用其中的一个,也可以将其中几个组 合起来使用,当然也可以全部采用。
规则一电话规则
电话作为poi数据中的一种辅助信息,具有一定的参考意义。如果两个 poi数据的电话相同,则这两个地址很有可能是冗余的,或者,至少说明它们 具有一定的关系。基于此,这里可以设置这样的规则,如果poi数据的电话相 同,则将前述的总相似度乘以一个大于1的系数,系数的具体值可以根据经验 设定。这样可以增加满足电话规则的poi数据在后续305中被判断为是冗余数 据的可能性。
特别的,对于poi数据中电话号码可能存在的格式混乱情况,需要先将
poi数据中的电话信息准确的提出出来。例如对于北京的poi数据,在提:f又过
程中,要求电话号码必须满足8位,而且开头为6或8,以便于上述电话规则 的使用。
规则二数字规则
无论是汉字类型的数字,还是阿拉伯数字,在poi数据的名称和地址中都 有很重要的地位。 一般地,如果代表相同含义的两个字符串中的数字不同,则 这两个poi数据不是冗余数据。所述代表相同含义的字符串例如可以是名称中 的第几分公司,地址中有门牌号等。
在判断poi数据是否冗余时,引入对名称和/或地址中数字部分的考虑, 即如果poi数据的名称和/或地址的相应位置的数字不同,则不应当在后续步 骤中判断为冗余。具体的,可以将总相似度置为o,以在后续305中被判断为 非冗余。
数字是否表示相同的含义,即数字的位置在名称和/或地址中是否相同, 可根据它们的前后词是否相同来进行判断。
规则三名称子串规则
有些POI数据的名称, 一个是另一个的子串。所谓子串是指一个字符串是
另一个字符串的一部分,如"北京"和"京大"是"北京大学"的子串。对于
名称中存在子串的情况,有可能这两个POI数据是冗余,也有可能这两个POI
数据不是冗余。这里,将子串从完整串中切出后,将剩下的部分称为剩余串。 例如,"北京,,是"北京大学,,的子串,则将"北京,,从"北京大学,,中切出, 剩下"大学,,这个词,其为剩余串。对于存在名称子串的情况,判断是否是冗
余,可以按照下面内容进行
(一) 、如果剩余串中包括表示位置实体的词语,则这些POI数据不为冗 余。具体的,这里,可以将总相似度置为O,以保证在后续305中被判断为不 是冗余数据。这类表示位置实体的词语可以预置在一个位置实体词库中,其中 可以包括如游泳馆,餐厅,歌舞厅,浴池等表示未知实体的词语。
(二) 、如果剩余串包括"分公司,分部,分店"等词,而且剩余串中的 这类词之前是一个地名,则这些POI数据很有可能是冗余。此时,可以将总相 似度乘以一个大于1的系数,以增加在后续305中判断为冗余的可能性。反之, 如果剩余串中的这类词之前不是地名或为空,则不为冗余,则可以将总相似度 置为0,以保证在后续305中被判断为不是冗余数据。
上述"分公司,分部,分店"等词,可以预置在一个分词库,则对于剩余 串,可以根据这个分词库进行判断。 规则四名称子序列规则
有些POI数据的名称, 一个是另一个的子序列。所谓子序列是指一个字符 串是另 一个字符串的一些字符按照原有顺序组合在一起的串,如"北大,,和"北 学,,是"北京大学"的子序列。
如果两个数据的名称具有子序列关系,则认为名称的相似度比较高。该规 则可以适用于针对名称中存在全称、简称的情况。
如果两个POI数据的名称存在子序列的情况,则将总相似度乘以一个大于 1的系数,以增加在后续305中判断为冗余的可能性。
305:将总相似度与预设的阈值比较,大于预设阈值的,判定对应POI数 据为冗余数据。
上述流程中,对于名称相似度和地址相似度的计算,可以是基于搜索到的 相似POI数据,两个数据作为一组进行计算。但是,很可能存在多组相关联的 冗余数据,例如一个组中数据A和数据B冗余,另 一个组中数据B和数据C 冗余,即是两组冗余数据。而事实上,而这两组冗余数据又是相关联的,因此, A、 B、 C可以作为同一组冗余数据。
针对该情况,则本实施例还可以包括306。
306:将存在的多组相关联的冗余数据合并。
将多组相关联的冗余数据合并后,可以统一输出,这样1更于用户观察和进 行进一步的处理,例如将冗余组中的数据只保留一个数据,而将其它数据删除。 这里的合并过程可以是一个宽度搜索的过程,通过一条数据A,找到与它冗余 的数据B与之合并,再继续深入,找出那些与数据B冗余的数据C进行合并, 直到最后所有相关联的冗余数据都合并在一起。
306未在图3中示出。
此外,在对POI数据的名称进行二元切分之前,还可以对POI数据进行 以下"t喿作中的 一种或几种
1. 去除名称、地址中的无关符号,如逗号括号等。
具体的,可以预置一个无关符号词库,根据这个无关符号词库去除名称、 地址中的无关符号。
2. 将名称、地址中的全角字符统一转换为半角字符或将名称、地址中的 半角字符统一转换为全角字符。
3. 过滤格式不符合POI数据定义或有严重位置错误的数据。 前面提到,POI数据通常包括名称、类别、经度、绵度等信息,并且还可
能包含地址信息。不同信息的格式不同,例如名称、地址信息中,应当包含表 示地址的字符,如汉字字符。而经度、炜度信息中应当是数字(或包括表示经 炜度的字母)的集合。如果经度、纬度中包含有汉字字符,则显然其格式是不
符合定义的。同样的,如果名称或地址中不包括汉字字符,而只是一串数字(或 包括字母)的集合,这样也是不符合poi数据的格式定义的。这类情况的数据, 应当被过滤。
例如,对于北京市poi数据来讲,所有位置的坐标都应该在合适的范围内,
对于坐标与合适范围的坐标相差甚远的数据,例如被显示到印度洋上的数据,
应当#:过滤#>。
4.根据预置的停用词词库,去除poi数据名称中的停用词。
poi数据的名称或地址中,存在很多出现频率很高的词,如"北京","公 司,,等,而这些词几乎不包含任何有用信息,它们反而会对名称相似度计算和 地址相似度计算带来副作用。因此,将这些词去除,对提高冗余检测的准确率 是一个非常有效的措施。
由以上实施例可见,本发明对输出的处理充分利用了 poi数据的重要信 息,并通过分别计算这些重要信息的相似度和引入对相关信息的考虑,整合得 到poi数据的相似度。这个相似度可以非常好的刻画poi数据的冗余情况,
利用这个相似度可以检测出poi数据的所有冗余数据。同时,本发明实施例结
合每种信息的实际情况加入一些规则,可以有效避免错误情况,保证冗余检测 结果的准确率。
以下介绍本发明冗余4企测系统的实施例,图4示出了该实施例的框图,如 图4中,包括
搜索单元41,用于对poi数据的名称进行二元切分,为切分的二元词建 立倒排索引,并为poi数据根据倒排索引中的出现频率最低的词搜索相似poi 数据;
名称相似度计算单元42,用于对搜索到的具有名称相似关系的poi数据, 进行名称相似度计算;
地址相似度计算单元43,用于对搜索到的具有名称相似关系的poi数据, 进行地址相似度计算;
总相似度计算单元44,用于将所述poi数据的名称相似度和地址相似度
取平均值,得到总相似度;
冗余数据判断单元45,将总相似度与预设的阈值比较,大于预设阔值的,
判定对应POI数据为冗余数据。
优选地,所述名称相似度计算单元42的第一种实现方式为采用基于编辑 距离的方式对搜索到的具有名称相似关系的POI数据进行名称相似度计算,具 体参见公式(1)的相关描述
优选地,所述名称相似度计算单元42的第二种实现方式为采用基于 Jaccard系数的方式对搜索到的具有名称相似关系的POI数据进行名称相似度 计算,具体参见公式(2)的描述。
优选地,所述名称相似度计算单元42的第三种实现方式参见图5所示, 可以包括名称相似度第一计算单元51、名称相似度第二计算单元52和名称相 似度平均单元53;其中
名称相似度第一计算单元51,采用基于编辑距离的方式对搜索到的具有 名称相似关系的POI数据进行名称相似度计算,如公式(1)所示的方法;
名称相似度第二计算单元52,采用基于Jaccard系数的方式对搜索到的具 有名称相似关系的POI数据进行名称相似度计算,如公式(2)所示的方法;
名称相似度平均单元53,用于采用F-度量对名称相似度第一计算单元计 算的结果和名称相似度第二计算单元计算的结果进行平均,参见公式(3)的 相关描述。。
优选地,所述地址相似度计算单元43的第一种实现方式为采用基于 Jaccard系数的方式计算对搜索到的具有名称相似关系的POI数据进行地址相 似度计算,具体方式参见公式(4)部分的相关描述
优选地,所述地址相似度计算单元43的第二种实现方式可参见图6所示, 可以包括
地址词库61,用于储存预置的地址;
分词单元62,用于对POI数据的地址进行分词;
分词相似度计算单元63,用于对于分词后第一 POI数据的地址元素集合
中每一地址元素,计算与分词后第二 POI数据的地址元素集合中每一地址元素 的相似度值,并找出最大相似度值,并作为所述第一POI数据中该地址元素与
第二 POI数据地址元素的相似度值;
相似度累加单元64,用于将第一 POI数据地址中每一地址元素与第二 POI 数据地址元素的相似度值累加,再除以两个POI数据中地址元素个数的平均 值,作为地址相似度值S^。其中所述地址元素个数的平均值可以是算术平均 值(将两个POI数据中地址元素个数求和再除以2)、几何平均值(两个POI 数据中地址元素个数乘积的开方)、平方平均值等。
优选地,所述地址相似度计算单元43的第三种实现方式可参见图7所示, 可以包括地址相似度第一计算单元71、地址相似度第二计算单元72,地址相 似度平均单元73,其中,
地址相似度第一计算单元71,釆用基于Jaccard系数的方式计算对搜索到 的具有名称相似关系的POI数据进行地址相似度计算,地址相似度第二计算单元72,包括地址词库61,分词单元62,分词相似 度计算单元63,相似度累加单元64,其具体结构参见地址相似度计算单元43 的第二种实现方式部分的描述。
地址相似度平均单元73,用于结合基于Jaccard系数的方式与基于分词的 方式并采用F-度量计算参见公式(5)部分的相关描述。
优选地,所述总相似度计算单元44将所述POI数据的名称相似度和地址 相似度采用F-度量的方式取平均值。
优选地,如图8所示,所述系统还可以包括
电话规则处理单元81,如果所述POI数据的电话相同,用于将所述总相 似度计算单元44计算的总相似度乘以一个大于1的系数之后传给所述冗余数 据判断单元。
优选地,如图9所示,所述系统还可以包括
数字规则处理单元91,如果POI数据的名称和/或地址的相应位置的数字 不同,用于将所述总相似度计算单元44计算的总相似度置为0之后传给所述
冗余数据判断单元。
优选地,如图10所示,所述系统还可以包括
名称相同MJ!'j处理单元101,对于名称相同的两个POItt据,如果坐标距 离小于预置的公里数,则将所述总相似度计算单元44计算的这两个POI数据 的总相似度置为大于所述阈值,然后传给所述冗余数据判断单元。
优选地,如图ll所示,所述系统还可以包括
名称子串规则处理单元111,对于所述总相似度计算单元计算的两个POI 数据存在名称子串的情况,
如果根据预置的位置实体词库判断剩余串中包括表示位置实体的词语,则 将所述总相似度计算单元44计算的总相似度置为0之后传给所述冗余数据判 断单元45;
如果剩余串中包括属于预置的分词库中的词,则将所述总相似度计算单元 44计算的总相似度乘以一个大于1的数值之后传给所述冗余数据判断单元45;
如果剩余串包括一些后缀如"店,圆,社"等,且如果该后缀前面为空或 为地名,则数据有可能是冗余。否则,很可能不为冗余。因此,本发明实施例 中还可以预置一个特别后缀词库,其中包括诸如"店,圓,社"等词语,通过 预置的特别后缀词库,进一步达到判断数据是否冗余的目的。具体的
如果剩余串中包括预置的特别后缀词库中的词语,且后缀前为空或为地 名,则将所述总相似度计算单元44计算的总相似度乘以一个大于1的系数之 后传给所述冗余数据判断单元45;
如果剩余串中包括预置的特别后缀词库中的词语,且后缀前为非空,也不 为地名,则将所述总相似度计算单元44计算的总相似度置为0之后传给所述 冗余数据判断单元45。
优选地,如图12所示,所述系统还可以包括
名称子序列规则处理单元121,对于两个POI数据存在名称子序列的情况, 则将所述总相似度计算单元44计算的总相似度乘以一个大于1的系数之后传 给所述冗余数据判断单元45。 优选地,如图13所示,所述系统还可以包括
普通地址规则处理单元131,对于都包括预置的普通地址词库中普通地址 的两个POI数据,如果所述普通地址的地址后缀属于地址后缀词库中的同 一地 址后缀,而普通地址不同,则将所述总相似度计算单元44计算的总相似度乘 以一个0至1之间的系数,之后传给所述冗余数据判断单元45。
需要说明的是,基于上述图8~图13中所示,所述系统还可以同时包括 电话规则处理单元81,数字规则处理单元91,名称相同规则处理单元101, 名称子串规则处理单元111,名称子序列规则处理单元121,普通地址规则处 理单元131这些单元中的多个。
优选地,如图14所示,所述系统还可以包括
合并单元141,用于将冗余数据判断单元45得到的多组相关联的冗余数 据合并。
优选地,如图15所示,所述系统还可以包括预处理单元151,用于在搜 索单元41进行搜索之前,对POI数据进行处理。所述预处理单元包括下面单 元中的一个或几个的组合
第一操作单元,用于才艮据预置的无关符号词库去除名称、地址中的无关符
号;
第二操作单元,用于将名称、地址中的全角字符统一转换为半角字符或将
名称、地址中的半角字符统一转换为全角字符;
第三操作单元,用于过滤格式不符合POI数据定义或有严重位置错误的 数据;
第四操作单元,用于根据预置的停用词词库,去除POI数据名称中的停 用词。
下面再给出一种冗余才企测方法的实施例,该实施例包括 对POI数据的地址进行二元切分,为切分的二元词建立倒排索引,并为 POI数据根据倒排索引中的出现频率最低的词搜索相似POI数据;
对搜索到的具有地址相似关系的POI数据,进行名称相似度计算和地址
相似度计算;
将所述POI数据的名称相似度和地址相似度取平均值,得到总相似度; 将总相似度与预设的阈值比较,大于预设阈值的,判定对应POI数据为
冗余数据。
可见该实施例与前述方法实施例的区别在于,前者是对POI数据的名称进 行二元切分,为切分的二元词建立倒排索引,并为POI数据根据倒排索引中的 出现频率最低的词搜索相似POI数据;对搜索到的具有名称相似关系的POI 数据,进行名称相似度计算和地址相似度计算。而后者是对POI数据的地址进 行二元切分,为切分的二元词建立倒排索引,并为POI数据才艮据倒排索引中的 出现频率最低的词搜索相似POI数据;对搜索到的具有地址相似关系的POI 数据,进行名称相似度计算和地址相似度计算。其中,前后两个实施例中执行 的建立倒排索引的方式,根据倒排索引中的出现频率最低的词搜索相似POI 凄史据的方式,以及进行名称相似度计算和地址相似度计算的步骤相同。其它方 面,如总相似度的计算,总相似度与预设的阈值比较,判定冗余数据的方式两 者也相同。并且,明显地,后者的方法实施例也可以解决相同的技术问题,并 达到相同的技术效果。虽然通过实施例描绘了本发明实施例,本领域普通技术 人员知道,本发明有许多变形和变化而不脱离本发明的精神,因此,本发明将 不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖 特点相一致的最宽的范围。
权利要求
1、一种冗余检测方法,其特征在于,包括对POI数据的名称进行二元切分,为切分的二元词建立倒排索引,并为POI数据根据倒排索引中的出现频率最低的词搜索相似POI数据;对搜索到的具有名称相似关系的POI数据,进行名称相似度计算和地址相似度计算;根据POI数据的名称相似度和地址相似度得到总相似度;将总相似度与预设的阈值比较,大于预设阈值的,判定对应POI数据为冗余数据。
2、 如权利要求1所述的方法,其特征在于,所述名称相似度计算,包括采用基于编辑距离的方式计算,采用基于编辑距离的方式如下表示<formula>formula see original document page 2</formula>其中,S"表示基于编辑距离的相似度值,X和Y分别代表两个字符串, Edit(X, Y)代表X和Y的编辑距离,|X|、 lYl分别表示字符串X、 Y的长度。或者,采用基于Jaccard系数的方式计算,所述基于Jaccard系数的方式如下表示<formula>formula see original document page 2</formula>其中,S名2表示基于Jaccard系数的相似度值,X和Y分别代表两个字符串,XUY代表两个字符串的所有字符,XHY代表来两个字符串所有相同的 字符,取绝对值表示包含的字符的长度。
3、 如权利要求2所述的方法,其特征在于,所述进行名称相似度计算, 包括结合基于编辑距离的方式与基于Jaccard系数的方式,并采用F-度量计算, 如下表示<formula>formula see original document page 2</formula>F名表示结合基于编辑距离的方式与基于Jaccard系数的方式计算的名称相 似度,3表示预先设定的加权值。
4、 如权利要求l所述的方法,其特征在于,所述进行地址相似度计算,包括采用基于Jaccard系数的方式计算,所述采用基于Jaccard系数的方式计算 如下表示<formula>formula see original document page 3</formula>其中,S地!表示基于Jaccard系数的相似度值,X和Y分别代表两个字符 串,XUY代表两个字符串的所有字符,XHY代表来两个字符串所有相同的 字符,取绝对值表示包含的字符的长度。
5、 如权利要求1所述的方法,其特征在于,所述进行地址相似度计算, 包括根据预置的地址词库,对POI数据的地址进行分词;对于分词后第一 POI数据的地址元素集合中每一地址元素,计算与分词 后第二 POI数据的地址元素集合中每一地址元素的相似度值,并找出最大相似 度值,并作为所述第一 POI数据中该地址元素与第二 POI数据地址元素的相 似度值;将第一 POI数据地址中每一地址元素与第二 POI数据地址元素的相似度 值累加,再除以两个POI数据中地址元素个数平均值,作为地址相似度值S地
6、 如权利要求5所述的方法,其特征在于,所述对于分词后第一POI数 据的地址元素集合中每一地址元素,计算与分词后第二 POI数据的地址元素集 合中每一地址元素的相似度值,包括对于分词后第一 POI数据的地址元素集合中每一地址元素,采用基于编 辑距离的方式计算与分词后第二 POI数据的地址元素集合中每一地址元素的 相似度值。
7、 如权利要求5所述的方法,其特征在于,所述地址词库包括预先设定 的地名词库,该地名词库中包括预先"&定的地名^:据; 相应地,所述根据预置的地址词库,对POI数据的地址进行分词,包括 根据预置的地名词库,对POI数据的地址按照预置的地名词库存在的地 名数据进行分词。
8、 如权利要求7所述的方法,其特征在于,所述地址词库还包括预先设 定的地址后缀词库,该地址后缀词库中包括预先设定的地址后缀数据;相应地,所述根据预置的地址词库,对POI数据的地址进行分词,包括 对于不在地名词库中的地址,按照地址后缀词库将其分为 一个词。
9、 如权利要求4或5所述的方法,其特征在于,所述进行地址相似度计 算,包括结合基于Jaccard系数的方式与基于分词的方式并采用F-度量计算, 如下表示其中,F地表示结合基于Jaccard系数的方式与基于分词方式计算的地址相 似度,3表示预先设定的加权值。
10、 如权利要求l所述的方法,其特征在于,所述得到总相似度之后,比 较总相似度与预设的阈值之前,本方法还包括如果所述POI数据的电话相同,则将所述总相似度乘以一个大于1的系数。
11、 如权利要求l所述的方法,其特征在于,所述得到总相似度之后,比 较总相似度与预设的阈值之前,本方法还包括如果POI数据的名称和/或地址的相应位置的数字不同,则将总相似度置为0。
12、 如权利要求l所述的方法,其特征在于,所述得到总相似度之后,比 较总相似度与预设的阈值之前,本方法还包括对于两个POI数据存在名称子串的情况,如果根据预置的位置实体词库 判断剩余串中包括表示位置实体的词语,则将总相似度置为0;或者,如果剩余串中包括预置的特别后缀词库中的后缀,且后缀前为空或为地 名,则将总相似度乘以一个大于1的系数;如果剩余串中包括预置的特别后缀词库中的后缀,且后缀前为不空,也不 为地名,则将总相似度置为0。
13、 如权利要求l所述的方法,其特征在于,所述得到总相似度之后,比 较总相似度与预设的阈值之前,本方法还包括对于两个POI数据存在名称子序列的情况,则将总相似度乘以一个大于1 的系数。
14、 一种冗余检测系统,其特征在于,包括搜索单元,用于对POI数据的名称进4亍二元切分,为切分的二元词建立 倒排索引,并为POI数据根据倒排索引中的出现频率最低的词搜索相似POI 数据;名称相似度计算单元,用于对搜索到的具有名称相似关系的POI数据, 进行名称相似度计算;地址相似度计算单元,用于对搜索到的具有名称相似关系的POI数据, 进行地址相似度计算;总相似度计算单元,用于根据POI数据的名称相似度和地址相似度得到 总相似度;冗余数据判断单元,将总相似度与预设的阈值比较,大于预设阔值的,判 定对应POI数据为冗余数据。
15、 如权利要求14所述的系统,其特征在于,所述名称相似度计算单元 采用基于编辑距离的方式对搜索到的具有名称相似关系的POI数据进行名称 相似度计算,采用基于编辑距离的方式如下表示<formula>formula see original document page 5</formula>其中,S名1表示基于编辑距离的相似度值,X和Y分别代表两个字符串, Edit(X, Y)代表X和Y的编辑距离,|X|、 lYl分别表示字符串X、 Y的长度。或者,采用基于Jaccard系数的方式如下表示<formula>formula see original document page 6</formula>其中,S"表示基于Jaccard系数的相似度值,X和Y分别代表两个字符 串,XUY代表两个字符串的所有字符,XflY代表两个字符串所有相同的字 符,取绝对值表示包含的字符的长度。
16、如权利要求14所述的系统,其特征在于,所述名称相似度计算单元, 包括名称相似度第 一计算单元,采用基于编辑距离的方式对搜索到的具有名称 相似关系的POI数据进行名称相似度计算,名称相似度第二计算单元,采用基于Jaccard系数的方式对搜索到的具有 名称相似关系的POI数据进行名称相似度计算,名称相似度平均单元,用于采用F-度量对名称相似度第一计算单元计算 的结果和名称相似度第二计算单元计算的结果进行计算,如下表示<formula>formula see original document page 6</formula>F名表示结合基于编辑距离的方式与基于Jaccard系数的方式计算的名称相 似度,5表示预先设定的加权值。
17、 如权利要求14所述的系统,其特征在于,所述地址相似度计算单元, 采用基于Jaccard系数的方式计算对搜索到的具有名称相似关系的POI数据进 行地址相似度计算,所述釆用基于Jaccard系数的方式计算如下表示<formula>formula see original document page 6</formula>其中,Sw表示基于Jaccard系数的相似度值,X和Y分别代表两个字符 串,XUY代表两个字符串的所有字符,XflY代表来两个字符串所有相同的 字符,取绝对值表示包含的字符的长度。
18、 如权利要求14所述的系统,其特征在于,所述地址相似度计算单元 包括地址词库,用于储存预置的地址;分词单元,用于对POI数据的地址进行分词;分词相似度计算单元,用于对于分词后第一 POI数据的地址元素集合中 每一地址元素,计算与分词后第二 POI数据的地址元素集合中每一地址元素的 相似度值,并找出最大相似度值,并作为所述第一POI数据中该地址元素与第 二 POI数据地址元素的相似度值;相似度累加单元,用于将第一 POI数据地址中每一地址元素与第二 POI 数据地址元素的相似度值累加,再除以两个POI数据中地址元素个数的平均 值,作为地址相似度值S 地2。
19、如权利要求14所述的系统,其特征在于,所述地址相似度计算单元, 包括地址相似度第一计算单元、地址相似度第二计算单元,地址相似度平均单 元,其中,地址相似度第一计算单元,采用基于Jaccard系数的方式计算对搜索到的 具有名称相似关系的POI数据进行地址相似度计算,地址相似度第二计算单元,包括地址词库,分词单元,分词相似度计算单 元,相似度累加单元,其中地址词库,用于々者存预置的地址;分词单元,用于对POI数据的地址进行分词;分词相似度计算单元,用于对于分词后第一 POI数据的地址元素集合中 每一地址元素,计算与分词后第二 POI数据的地址元素集合中每一地址元素的 相似度值,并找出最大相似度值,并作为所述第一POI数据中该地址元素与第 二 POI数据地址元素的相似度值;相似度累加单元,用于将第一 POI数据地址中每一地址元素与第二 POI 数据地址元素的相似度值累加,再除以两个POI数据中地址元素个数平均值, 作为地址相似度值S地2,地址相似度平均单元,用于结合基于Jaccard系数的方式与基于分词的方 式并采用F-度量计算。
20、 如权利要求14所述的系统,其特征在于,还包括 电话规则处理单元,如果所述POI数据的电话相同,用于将所述总相似度计算单元计算的总相似度乘以一个大于1的系数之后传给所述冗余数据判 断单元。
21、 如权利要求14所述的系统,其特征在于,还包括 数字规则处理单元,如果POI数据的名称和/或地址的相应位置的数字不同,用于将所述总相似度计算单元计算的总相似度置为0之后传给所述冗余数 据判断单元。
22、 如权利要求14所述的系统,其特征在于,还包括 名称子串规则处理单元,对于所述总相似度计算单元计算的两个POI数据存在名称子串的情况,如果根据预置的位置实体词库判断剩余串中包括表示位置实体的词语,则 将所述总相似度计算单元计算的总相似度置为0之后传给所述冗余数据判断单元;如果剩余串中包括预置的特别后缀词库中的后缀,且后缀前为空或为地 名,则将所述总相似度计算单元计算的总相似度乘以一个大于1的系数之后传给所述冗余数据判断单元;如果剩余串中包括预置的特别后缀词库中的后缀,且后缀前为不空,也不 为地名,则将所述总相似度计算单元计算的总相似度置为0之后传给所述冗余 数据判断单元。
23、 如权利要求14所述的系统,其特征在于,还包括 名称子序列规则处理单元,对于两个POI数据存在名称子序列的情况,则将所述总相似度计算单元计算的总相似度乘以一个大于1的系数之后传给 所述冗余数据判断单元。
24、 一种冗余检测方法,其特征在于,包括对POI数据的地址进行二元切分,为切分的二元词建立倒排索引,并为 POI数据根据倒排索引中的出现频率最低的词搜索相似POI数据;对搜索到的具有地址相似关系的POI数据,进行名称相似度计算和地址 相似度计算;根据POI数据的名称相似度和地址相似度得到总相似度; 将总相似度与预设的阈值比较,大于预设阈值的,判定对应POI数据为 冗余数据。
全文摘要
本发明实施例公开了一种冗余检测方法和系统。一种冗余检测方法,包括对POI数据的名称进行二元切分,为切分的二元词建立倒排索引,并为POI数据根据倒排索引中的出现频率最低的词搜索相似POI数据;对搜索到的具有名称相似关系的POI数据,进行名称相似度计算和地址相似度计算;根据POI数据的名称相似度和地址相似度得到总相似度;将总相似度与预设的阈值比较,大于预设阈值的,判定对应POI数据为冗余数据。利用本发明,可以实现对电子地图POI数据中的冗余检测。
文档编号G06F17/30GK101388023SQ200810119849
公开日2009年3月18日 申请日期2008年9月12日 优先权日2008年9月12日
发明者阔 张, 董正斌 申请人:北京搜狗科技发展有限公司