一种有效检测汉语相似重复记录的方法文学论文(第2页)
本文共计3079个字,预计阅读时长11分钟。【 字体:大 中 小 】
步骤4:如果j的值等于Max(|S|,|T|),则将head中的值赋给j作为下次匹配起始位置,返回步骤3。
3相似度计算
对有n个属性的记录M和N,它们的相似度用公式(1)计算:Sim(M,N)=α1ma(tMi,N)i+α2ma(tMj,N)j+nk=1,k≠i,jΣ1-α1-α2n-2ma(tMk,Nk)(1)(α1>0,α2>0,α1+α2<1)式(1)中,ma(tMi,N)i是记录M和N属性Ai的匹配值,α1,α2分别是Ai,Aj匹配结果的权重,越重要的属性权重值越大。
属性值匹配用公式(2)计算:
ma(tMi,N)i=Min(|Mi|,|Ni)|k=1ΣΩk(|Mi|,|Ni)|/2(2)式(2)中,|Mi|和|Ni|分别表示记录M和N的.第i个属性的字符个数,ΣΩ表示相同字符数。
4检测和处理相似重复记录
检测相似重复记录的步骤如下:(1)数据库中记录数是N,则从中抽样εN的记录。N越大,ε就越小,反之越大,原则是抽样记录要能够比较真实地反映整体数据库记录的情况。
(2)统计记录中前5个属性值的种类数,选择种类数最多的属性作为第1次排序的属性。如果Ai是第1排序属性,则统计属性Ai+A(jAj是其他4个属性)值的种类数,选择种类数最多的属性Aj作为第2排序属性;当属性值的匹配值大于0.8时认为相等。
(3)先用Ai然后用Aj对数据库排序。
(4)初始化时i指向第1个记录。
(5)指针j指向下1个记录。
(6)计算第i个和第j个记录中属性的ma(t),如果值小于0.80,则将j+1的值赋给i,转到步骤(5);如果大于0.80,则计算属性Aj的ma(t);如果均值大于0.90,则继续比较后续的属性,最后计算Sim(),其中Ai和Aj的权重分别是0.3和0.2。如果Sim小于0.90,则将j+1的值赋给i,转到步骤(5);如果Sim大于0.90,则认定它们是相似或重复记录;如果Sim在0.90和0.95之间,则它们之间认定为相似记录,将其复制到文件表中由人工判断;如果大于0.95,则它们是重复记录,转向(5)。
5实验结果
实验环境是Pentium Dual-Core CPU,3.20 GHz,2.00 GB联想电脑。实验数据来源于学校图书馆搜集的汉语文献,其中包含大约8%的相似或重复记录。同时,实验比较了文献[6]中的方法一和本文提出的方法二得到的查准率和运行时间,如图1和图2所示。从中可以看出,本文提出的方法是有所改进的。6结语在当今信息社会,信息的来源和种类越来越多,而将信息集成到一起不可避免地会产生相似重复记录。而如何消除相似重复记录,是人们必须面对的问题,因此也是一个值得研究的问题。

