当前位置:   article > 正文

Web文本去噪——基于DOM树的哈希值去噪法_hash算法用于降噪

hash算法用于降噪

不知从什么时候,自己居然走上了玩Java的道路。本以为做葡萄城杯是我最后一次用Java来写程序,现在看来只能说世事无常,我们永远不知道明天会发生什么,就像我无论如何也没想到一心想利用暑假时间好好看Linux C,最终却玩上Java一样。是的我没有写错,后者比起前者更让我感到吃惊。

言归正传,项目需要,需要对爬虫抓取下来的网页进行去噪。

广义上的Web去噪大致分为三类:一是去除重复的网页(如:镜像网站、复制文章等);二是去除网页中某些为提高在搜索引擎中的排名而故意制造的反向、重复链接;三是去除网页中与网页正文不相关的内容(如:广告图片、链接,网站模板信息以及版权信息等)。

项目中目前我负责对第三种情况的处理,因此也仅对第三种情况做了一些大致的了解与研究。目前针对第三种情况,主流的方法大致有以下几种:基于DOM树的行文本Hash去噪,基于DOM树的风格树去噪,基于LCS(最长相似子串)的最大相似度匹配去噪以及机器学习等方法。目前看来第一种方法较容易实现,于是便从该方法开始入手,做了一个小的实现,效果还比较不错。下面简要介绍一下这种去噪方法的实现步骤。

整个方法的核心为DOM树与Hash值,通过生成网页的DOM树,对DOM树稍做处理,依次遍历所有结点,对每一结点(行文本)计算得其哈希值,当某一行文本对应的哈希值出现次数过多,大于指定的阈值时,则认定该结点(行文本)为噪声,可将其去除。

整个过程可以分为大致两个阶段,第一阶段为生成DOM树以及对DOM树的处理,第二阶段为哈希值的计算以及噪声的判定与去除。

第一阶段:

首先, 我们将抓取下来的一个完整的HTML代码进行处理。处理包括统一字符编码、替换诸如<strong>、<hX>、<font>等无用的干扰标签为空串,去除meta,link,img,li,a,span,style,script等无用标签,清除网页源码中的注释信息等工作。

在移除标签时, 用到了Jsoup这个三方库

jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

jsoup 的主要功能如下:

1. 从一个 URL,文件或字符串中解析 HTML;

2. 使用 DOM 或 CSS 选择器来查找、取出数据;

3. 可操作 HTML 元素、属性、文本;

Source code    
  1. public
  2. static
  3. String remove_tag
  4. (
  5. String text
  6. )
  7. {
  8. Document doc
  9. = Jsoup.
  10. parse
  11. (text
  12. )
  13. ;
  14. remove_comment
  15. (doc
  16. )
  17. ;
  18. System.
  19. out.
  20. println
  21. (doc.
  22. toString
  23. (
  24. )
  25. )
  26. ;
  27. //无用标签列表
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/180826
推荐阅读
相关标签
  

闽ICP备14008679号