词典去重数据
来源:互联网 发布:知乎高考参考书 编辑:程序博客网 时间:2024/04/20 20:43
1:字符相似判断
比如: "百度公司" "中国百度网络公司" 很明显这就是一条相同的数据,这样才能将他们合并
a、 方法一
最简单的比较方法就是单字判断法:即把字符串拆成单字,计算相同的字在整个串中的比重。假设字符串1长度为m1,字符串2长度为m2,他们中有n个相同的字,那么他们的相似度是:
x=50%*(n/m1)+ 50%*(n/m2)
实现代码如下:
/****
* 比较两字符的相似度 最简单的比较方法就是单字判断法:即把字符串拆成单字,计算相同的字在整个串中的比重。假设字符串1长度为m1
* 字符串2长度为m2,他们中有n个相同的字,那么他们的相似度是:x=50%*(n/m1)+ 50%*(n/m2)
* @param fld_1
* @param fld_2
* @return double
*/
public static double charsetEquals(String fld_1,String fld_2)
{
double fld_1_len = fld_1.length(), fld_2_len = fld_2.length(); //字段长度
double nLen = charsetEqualsLen(fld_1,fld_2);
double totalResult = (0.5*(nLen/fld_1_len)+ 0.5*(nLen/fld_2_len));
return totalResult;
}
/****
* 比较字符的相同个数
* @param fld_1
* @param fld_2
* @return int
*/
public static int charsetEqualsLen(String fld_1,String fld_2)
{
int countTotal = 0;
char[] chars_fld_1 = fld_1.toCharArray();
char[] chars_fld_2 = fld_2.toCharArray();
for (int i = 0, Len = chars_fld_1.length; i < Len; i++) {
String CnverkeString = chars_fld_1[i]+"";
for (int j = 0, Lenj = chars_fld_2.length; j < Lenj; j++)
{
String CnverkeString0 = chars_fld_2[j]+"";
if(CnverkeString.equals(CnverkeString0))
{
countTotal++;
}
}
}
return countTotal;
}
public static void main(String[] args)
{
System.out.println("conform for.........."+charsetEquals("北京图行天下公司","北京图行天下有限公司"));
}
用这个公式可以进行简单的相似度计算,但对下面这种类型的串就无能为力了:“物美大卖场分店(志新)物美大卖场分店(北太)”这个例子的得分是82%。但稍微考虑下就觉得这肯定是两个不同的对象,相似度应该很低。所以单字判断法有很大的局限性。从这个例子看出,判断两个串的相似,关键词很重要,有再多相同的修饰词,只要关键词不同,也不能认为相似。如果我们能去掉“大卖场”、“分店”这些常用修饰词,那就只剩下“物美志新”和“物美北太”,这样重新计算得分就变成了50%。
b、 方法二
本文为了形式化机构名的结构,便于计算机处理,把机构名的构成成分划分为如下几个关键词类:RegionName,Unknown,IndustryType,OrgType,用R,U,I,O来简称。RegionName是所属地名称,如“北京”,“上海”等;Unknown是固有名称,如“广州美的”中的“美的”,“四川长虹”中的“长虹”,IndustryType是行业性质,如“石化”,“银行”等;OrgType指的是组织形式,如“
公司”,“股份公司”,“大学”等。关键词类可以扩展,以解决更复杂的组织结构名或者其他领域的问题。
规则代号 规则 举例说明
Rule0 <R> <U> <I> <O> 北京斗牛士贸易公司
Rule1 <R> <I> <O> 中国移动有限公司
Rule2 <R> <I> <I> <O> 中国石油化工股份有限公司
Rule3 <U> <I> <O> 东风汽车股份有限公司
Rule4 <U> <O> 葛洲坝股份有限公司
Rule5 <U> <I> <R> <O> 海尔集团北京分公司
Rule6 <R> <I> <R> <U> <I> <O> 中国石化北京燕山石化有限公司
Rule7 <U> <I> <R> <I> <O> 中建国际北京装饰有限公司
Rule8 <R> <I> <R> <O> 中国银行北京分行
Rule9 <R> <I> <U> <I> <I> <O> 中国石化齐鲁石油化工有限公司
…… …… ……
匹配度计算根据各个部分匹配时,U部分最重要,该部分匹配上权值相对较高,用该方法计算出来的匹配度为:R * a1 + U * a2 + I * a3 + O * a4; a1,a2,a3,a4分别为权值系数。该方法需要专用的词库:包括地理词库、行业词库、组织机构词库。
给一个字符串你,咱们才能知道他们是属于那个关键词,这就涉及到了 分词中的机械分词.
建立几个自己需要的关键词库(文本 xml 数据库)
- 词典去重数据
- hadoop-数据去重
- hive 去重数据
- SQL数据去重
- 数据去重
- 数据去重
- 数据去重程序
- mysql数据去重
- Hadoop 数据去重
- 数据库数据去重
- SQL数据去重
- 数据去重
- Hive数据去重
- Hive数据去重
- 大数据去重
- MySQL 数据去重
- 数据去重
- json数据去重
- CSDP是个好东西——CSDP 认证考试简介
- 误传(转载)
- ASP.NET程序中常用的三十三种代码
- MIME类型
- XSL:XSL基础之三
- 词典去重数据
- ldd
- javascript的智慧 二(转载)
- xfire 1.2 实现webservice完整流程
- 优化英文网站取得的效果
- MVC的迷失?
- 我的博客正式开通
- 向xaml里传入参数
- XSL:XSL基础之三B