数据检索前的数据预处理
名称来源继承校验
² 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打回。