数据检索前的数据预处理

名称来源继承校验

²  step 1字符串匹配比较:直接利用新老name进行字符串比较,若相等再继承正确,停止后续名称继承校验。

²  step 2规范化名称比较:对新老name进行规范化处理,用处理后的字符串比较

其中名称规范化操作处理过程如下:

a、   大小写和全半角转化(目标小写、半角)

例子:A -> a ABC->ABC

b、繁体转简体

c、中英文数字转换

d、去掉特殊符号

e、去除名称中的城市(“市”、“特别行政区”)

城市规范化(对于普通城市,如果市就加上市。如果城市中有香港、澳门、台湾,判断是否有“特别行政区”字段,如果没有,加上。)

去掉 带市 和特别行政区的后缀的规范化city

去掉 不带市和特别行政区后缀,的city名称

 

²  step 3 简称扩展比较

利用配置的同义字典资源,利用简称词表进行新老名称替换,用处理后的字符串比较

例子:

第2小学 2小

如果新poi名称中有第2小学&&旧名称中没有第二小学&&旧名称中有2小

将新名称中的第2小学换成2小。

If (old_name.contains(“第2小学”) && new_name.! contains(“第2小学”) &&  new_name.contains(“2小”)

Old_name.replace(“第2小学”,“2小”)

 

²  step 4拼音消歧比较:将新老名称转换成拼音,进行拼音的比较(多音字)认为正确,此策略的目的是消除错别字的影响。

例子:

百度大厦写成白度大厦

 

²  step 5后缀互斥比较:利用后缀互斥字典资源,将后缀互斥的名称检出

词表:东门;西门;南门;北门;东北门;西北门;东南门;西南门;

通过后缀词表来判定name中时候含有后缀(字符串包含且是尾包含就认为含有后缀)新老name都含有后缀且后缀不同||一个含后缀一个不含,则继承错误,否则继续判断字符串相似性

 

²  step6字符串相似性比较:利用最大公共子串和欧式距离的方式,计算历史和新入名称的相似性,并根据相似性阀值将嫌疑较大的来源继承错误数据检出;

计算公共字符串长度

计算字符串编辑距离

字符串编辑距离: 是一种字符串之间相似度计算的方法。给定两个字符串S、T,将S转换成T所需要的删除,插入,替换操作的数量就叫做S到T的编辑路径。而最短的编辑路径就叫做字符串S和T的编辑距离。

举个例子:S=“eeba”   T="abac"   我们可以按照这样的步骤转变:(1) 将S中的第一个e变成a;(2) 删除S中的第二个e;(3)在S中最后添加一个c; 那么S到T的编辑路径就等于3。当然,这种变换并不是唯一的,但如果3是所有变换中最小值的话。那么我们就可以说S和T的编辑距离等于3了。

Strig1 =”abcd” strig2=”12345”

 

策略:

公共字符串长度小于3个字符(一个汉字是2个字符)或者当公共字符串新老name都是4个汉字且前两个汉字不同,后两个汉字相同,,则认为继承错误(用于百度大厦和奎科大厦这种badcase)

字符串编辑距离等于2,则继承错误

      只有后缀互斥比较step5和字符串相似性比较step6打回。

posted @ 2014-05-21 10:41  bobo的学习笔记  阅读(331)  评论(0编辑  收藏  举报