去除"重复"文档一一排重-施耐德按钮开关的选型手册
9.2去除"重复"文档一一排重为什么需要去除重复文挡?因为这样可以节省空间,提高搜索质量,从而节省用户的时间.可以用比较checkswn值的方法来判断完全相同的文档。 checksum是一个代表文档内容的值。如果两个文档的checksum值不匹配,则认为这两个文挡不相同。当然,事实并不一定完全如此,但如果选择合适的checksum计算过程,则不同的文档产生相同的checksum值的概率很小。 checksum计算过程叫做checkswn算法。最简单的算法是把文本中的每个字符按编码求和. MD5算法是一种流行的checksum算法,返回128位的字节数组。下面的代码返回给定文本的MD5值。 publ ic static byte [] getMDS(String text) { MessageDigest md = null; byte[] encryptMsg = nul1; try ( md = MessageDigest.getlnstance("MDS"); 11取得MDS-Instance encryptMsg = md.digest (text.getBytes ()); 11求MDS-Hash } catch (NoSuchAlgorithmException el ( System .out.println(" No Such Algorithm Exception!"); return encryptMsg; 9.3利用"语义指纹"排重检测近似重复的文档很困难,因为很难对近似文档给出一个确切的定义。检测转载文章也与此类似。可以用衡量两个网页的相似度的阙值来定义近似文档。例如向量余弦夹角大于0.9的两篇文档算作相似文档.有两种常见的检测重复文档的方式:在一个给定的文档集合内部检测,叫做自查重:将某一给定文档和一个文档集合比较,叫做单条查重.自查重最容易想到的方法是集合内部的文档两两计算相似度,但采用这种方法计算的时间复杂度是O( n1 ).太高。为了提高比较效率,不直接比较原文,而比较文挡的缩略表示.文档的语义缩略表示叫做语义指纹σingerP由1t). .<氧…·
用户评论