摘    在搜索引擎的检索结果页面中,用户经常会得到内容相似的重复页面,它们中大多是由于网站之间转载造成的。为提高检索效率和用户满意度,提出一种基于特征向量的大规模中文近似网页检测算法DDW(Detect near-Duplicate WebPages )。试验证明,比起其他网页去重算法(I-Match),DDW具有很好的抵抗噪声的能力及近似线性的时间和空间复杂度,在大规模实验中获得良好测试结果。

关键词  网页去重算法   特征向量   近似网页   支持向量机

第一部分介绍现有去重算法;第二部分论述DDW算法设计;第三部分介绍我们的试验结果和对结果的分析;第四部分是结论。

现有近似网页检测算法介绍

我们大致可以把文本复制检测算法分为两类:基于语法的方法(基于Shingle的方法)和基于语义的方法(基于Term的方法)。

1.1  基于Shingle的方法

Shingle是指文档中一组临近的有序词。基于shingle的算法要求从文档中选取一系列shingle,然后把shingle映射到Hash表中,一个shingle对应一个Hash值,最后统计Hash表中相同的shingle数目或者比率,作为判断文本相似度依据。参考文献[5-10]都是常用的基于single的算法。为实现大规模文档的检测,各研究者采用了不同的采样策略,用于减少参加比较的shingle的数量。

Heintze[8]选取Hash值最小的N个shingle, 并去除频繁出现的shingles。Bharat[6]选取Hash值为25倍数的shingle,每篇文档最多选取400个shingle。Broder[7]将多个single联合起来组成一个supershingle并通过比较supershingle的Hash值计算文档的相似度。尽管supershingle 算法计算量更小,但Broder发现它不适用于短小文档的检测。Fetterly[13]把连续出现的5个词视为一个shingle,每篇文档采样 84个shingle,然后将这些shingle组合为6个supershingle; 具有2个相同supershingles的文档被视为内容相似的文档。吴平博等[9]利用标点符号多数出现在网页文本中的特点,以句号两边各五个汉字作为single来唯一地标识网页。

对于各种基于shingle的算法,Ye[10]就其参数选择进行了系统研究。

1.2  基于Term的方法

基于Term的方法[11-14]采用单个词条作为计算的基本单元。通过计算文档特征向量的余弦值来获得文档的相似度,而不考虑词条出现的位置和顺序。由于采用了许多特征提取(尤其是特征向量的选择)技术,使得基于Term的方法比基于Shingle的算法更为复杂。

Chowdhury 的I-Match[11]算法通过计算逆文本频率指数(IDF :inverse document frequency)来确定选择哪些词作为特征向量。IDF = log (N/n),其中N 为文档集中文档的数目,n 为包含该关键词的文档的数目。I-Match算法正是基于“在文档集中频繁出现的词并不会增加文档的语义信息”[13]的推断,去掉IDF值较小的词,从而获得了更好的文档表示。经过过滤的关键词按降序排列构成文档的“指纹”(fingerprint),指纹相同的文档被视为近似文档。最坏情况下(所有文档都是近似文档),I-Match算法的时间复杂度为O(nlogn)。

基于特征向量的去重算法设计

本文提出的基于特征向量的大规模中文网页去重算法,采用类似I-Match的关键词向量提取方法,但同时采用关键词的位置和权重信息构建特征向量来进行文档表示。不计算特征向量的hash值而是利用分类信息和检索系统来进行文档相似度计算和排重。具体设计方案如下:

2.1  网页的文本提取

网页中包含的广告信息、链接到其他网页的导航信息等,都会对该网页内容检索产生干扰。因此,在对网页的内容建立索引之前,我们需要对其中的有效正文信息进行了提取。采用的是我们另一项课题的研究成果[15]:

1)根据网页的视觉信息将文章分块,并人工标注各个内容块是否为有效信息块。

2)提取内容块的空间位置、视觉特征、语言信息及结构特征。

3)提取文章标题,使用潜语义分析方法计算内容块与文章标题的潜在语义相关度。

4)将以上信息构成内容块的特征向量。

5)使用人工标注的内容块做六折交叉法,训练SVM(Support Vector Machine)分类器。

6)使用训练好的SVM分类器判断新的内容块是否为有效信息块;提取有效信息块中的文本作为有效的正文信息。

2.2  文本的表示

迄今为止,文本的表示主要还是采用向量空间模型(VSM)。在该模型中,文档空间被看作是由一组正交向量张成的向量空间。若该空间的维数为n,则每个文档d可被表示为一个特征向量Vd=(ω1,ω2,…,ω1,…,ωn),其中ωi表示特征向量中第i个特征项的权重。

特征项的选取即文本特征的提取过程。目前常用的特征选择策略有:文档频数(Document Frequency)、信息增益(Information Gain)和互信息(Mutual In formation)等特征选择方法。

从中文信息处理角度来看,比较好的方式是利用意义较大的多字词来表示文档的内容,将文本分词后,将这些词的权重作为向量的分量来表示文本。但由于中文分词的词典规模一般在5万到25万词条之间[16]。也就是说中文的特征空间维数比英文高很多。在相同规模训练语料条件下,更高的维数必然导致更多的低频词出现。在这样的情况下使用IG和MI进行特征抽取,由于它们对低频词的倚重,必定将会有更多的低频词作为特征使用。从而导致了特征向量抽取的不准确。文献[17]的试验结果表明在中文特征向量问题上它们的表现远远不及TFIDF。

因此,我们在系统中采用了一种使用比较普遍的TF-IDF公式来计算各个分量的权重!

2.3  索引构建

为了对特征向量进行快速访问,必须对特征项建立索引机制。倒排索引具有实现相对简单、查询速度快、容易支持同义词查询等优点。本文对特征项建立倒排索引文件。在我们的系统中有文章类别信息的支持,可以针对不同类别建立特征项索引,以提高检索效率。

2.4  特征向量检索

由于网页噪声的影响,重复网页的文本特征向量有时不完全相同,精确匹配会导致匹配失败。但由于特征向量是最能代表一篇文章的一组词,因此只用检索排在前边的n维特征向量并计算其相似度,即可基本确定两篇文章是否是近似文档。在得出匹配检索后,采用余弦公式(3)进行相似度计算。

若sim(d1,d2)>阈值可以推断d1,d2是近似网页。

3  实验结果及对比分析

结论

转自:http://www.cnindex.fudan.edu.cn/zgsy/2009n1/caoyujuan.htm

转载于:https://www.cnblogs.com/bonelee/p/6420488.html

一个基于特征向量的近似网页去重算法——term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度...相关推荐

  1. 一个基于特征向量的近似网页去重算法——term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度

    一个基于特征向量的近似网页去重算法--term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度 摘  要  在搜索引擎的检索结果页面中,用户经常会得到内容相 ...

  2. 【项目总结】基于SpringBoot+Ansj分词+正倒排索引的Java文档搜索引擎项目总结

    文章目录 项目介绍(开发背景) 主要用到的技术点 前端 后端 Ansj分词 实现索引模块 实现Parser类 实现Index类 完善Parser类 优化制作索引速度 实现搜索模块 实现DocSearc ...

  3. 基于群智能的路径规划算法(四)------人工蜂群算法

       本系列文章主要记录学习基于群智能的路径规划算法过程中的一些关键知识点,并按照理解对其进行描述和进行相关思考.    主要学习资料是来自 小黎的Ally 的 <第2期课程-基于群智能的三维路 ...

  4. 基于TF-IDF编码进行文本聚类分析:文档成对相似性计算、层次聚类(链接矩阵、树形图dendrogram绘制、聚类标签)

    基于TF-IDF编码进行文本聚类分析:文档成对相似性计算.层次聚类(链接矩阵.树形图dendrogram绘制.聚类标签) 目录

  5. 基于stm32的空气质量检测净化系统,检测温湿度和pm10和 pm2.5,资料包含(设计文档,源码,pcb电路)。

    基于stm32的空气质量检测净化系统,检测温湿度和pm10和 pm2.5,资料包含(设计文档,源码,pcb电路).

  6. 基于JAVA疫情防控期间人员档案追演示录像上计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA疫情防控期间人员档案追演示录像上计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA疫情防控期间人员档案追演示录像上计算机毕业设计源码+系统+mysql数据库+lw文档 ...

  7. 自研!东鸽用 Go 语言写了一个能够自动解析新闻网页的算法

    这是「进击的Coder」的第 593 篇技术分享 作者:韦世东 来源:NightTeam " 阅读本文大概需要 8 分钟. " 输入网页文本(不需要输入 xpath),自动结构化输 ...

  8. 基于物品的协同过滤推荐算法_《推荐系统实践》3.基于物品的协同过滤算法

    基于物品的协同过滤算法(item-based collaborative filtering,以下简称ItemCF)算法思想:给用户推荐那些和他们之前喜欢的物品相似的物品. 不过,ItemCF算法并不 ...

  9. 基于SpringCloud微服务架构的直播平台的设计与实现(前端小程序+后端Java IDEA) 文档+项目源码

    摘 要 本文的主题是设计与实现一个基于 SpringCloud+Golang 微服务框架的分布式直播平台,主要聚焦于短视频与直播流媒体服务.系统由服务端,后台管理端和微信小程序端三部分组成,推拉直播流 ...

最新文章

  1. docker监控系统
  2. LaTeX 第五课:数学公式排版
  3. NAND FLASH读写速度计算方法详解
  4. Quiz 92 - twisted
  5. 伯颜的诗和“金佛”趣事
  6. CString Management (关于CString的所有操作)
  7. 计算机二级数据模型三要素,2017年计算机二级公共基础知识重点讲解:数据模型...
  8. ajax主要有哪些方法,ajax的使用方法和原理,ajax包括哪些技术呢
  9. 电脑更新重启后黑屏_电脑黑屏重启还是黑屏的解决方法教程
  10. java代表预设一个SQL_java-io基础-3-压缩和解压
  11. Shapley值法介绍及实例计算
  12. 云效平台性能测试功能:一个基于Jmeter的性能压测平台
  13. MacM1安装homebrew步骤
  14. 视频号日引流500+精准流量6大玩法,实现微信后端转化变现丨国仁网络资讯
  15. 老股民箱底翻出发黄纸质股票 如今价值超过20万
  16. List的toArray方法强制转换
  17. 圆刚采集卡测试软件,RECentral(圆刚视频采集卡管理助手)V4.3.0.35 正式版
  18. kafka集群配置(三台机器)
  19. c++中STL库 简介 及 使用说明
  20. 漂亮的系统后台UI 欣赏

热门文章

  1. call_once/once_flag
  2. awk内建变量示例详解之NR、FNR、NF
  3. 【Linux网络编程笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—实践篇
  4. 3*3 c语言,C语言实现小游戏(三) 3*3棋盘游戏
  5. 企业研发人员配备比例_企业管理人员合理配置比例
  6. python可变参数和关键字参数位置_python的位置参数、默认参数、关键字参数、可变参数区别...
  7. 定义一个圆类java用echo_正则表达式中圆括号的作用
  8. cvpr2019 目标检测算法_CVPR2019 | 0327日更新12篇论文及代码汇总(多目标跟踪、3D目标检测、分割等)...
  9. java性能调优指南,帮你解决90%的问题!
  10. 意外收获字节跳动内部资料,Android岗