HTML内容提取的最新技术是什么?

时间:2009-12-26 01:22:48

标签: html html-content-extraction text-extraction

有很多关于HTML内容提取的学术着作,例如Gupta& Kaiser(2005)Extracting Content from Accessible Web Pages,以及一些感兴趣的迹象,例如onetwothree,但我不清楚这种做法有多好后者反映了前者的想法。什么是最佳做法?

指向良好(特别是开源)实现的指针以及对实现的良好学术调查将是我正在寻找的东西。

后记第一:准确地说,我所追求的那种调查将是一篇论文(已发表,未发表,无论如何),它讨论了学术文献中的两个标准,以及一些现有实现,并从标准的角度分析实现的不成功程度。而且,真的,邮寄名单上的帖子对我也有用。

后记第二要明确的是,在我接受了Peter Rowell的回答之后,我们可以看到这个问题导致了两个问题:(i)解决了不符合要求的问题HTML,其中Beautiful Soup是最推荐的解决方案,以及(ii)未解决的问题或将肉类(主要是网站添加的样板和宣传材料)与肉类分开(内容是那种认为页面可能有趣的人为了解决现有技术发展问题,新的答案需要明确地解决这个问题。

8 个答案:

答案 0 :(得分:18)

提取对不同的人来说意味着不同的东西。能够处理所有受损的HTML是一回事,而Beautiful Soup在这个部门是一个明显的赢家。但BS不会告诉你什么是残酷的,什么是肉。

从计算语言学家的角度考虑内容提取时,事情看起来不同(而且很丑陋)。在分析页面时,我只对页面的特定内容感兴趣,减去所有导航/广告/等。残余。并且你不能开始做有趣的事情 - 共同出现分析,短语发现,加权属性向量生成等 - 直到你摆脱了残余。

OP引用的第一篇论文表明这是他们试图实现的 - 分析一个站点,确定整体结构,然后减去那个和Voila!你只有肉 - 但他们发现它比他们想象的更难。他们从改进的可访问性角度来解决问题,而我是一个早期搜索的人,但我们都得出了相同的结论:

将肉从肉中分离是很难的。并且(在您的问题的各行之间阅读)即使删除了残留物,也没有仔细应用语义标记,它非常很难确定文章的“作者意图”。从像citeseer这样的网站中获取肉类(干净且可预测地以非常高的信噪比布置)比处理随机网络内容更容易<2>或3个数量级。 / p> 顺便说一下,如果你处理的是较长的文件,你可能会对Marti Hearst(现为加州大学伯克利分校的教授)的工作特别感兴趣。她的PhD thesis以及其他关于在大型文档中进行子主题发现的论文让我对在较小的文档中做类似的事情有了很多见解(令人惊讶的是,这可能更难以处理)。但是你只有在摆脱了残余之后才能做到这一点。


对于可能感兴趣的少数人来说,这里有一些背景故事(可能是Off Topic,但今晚我有这种心情):

在80年代和90年代,我们的客户大多是政府机构,他们的眼睛大于预算,他们的梦想让迪斯尼乐园看起来很单调。他们正在收集他们可以得到的所有东西,然后去寻找一种银弹技术,以某种方式(巨手波)提取文件的“含义”。对。他们找到我们是因为我们是这个奇怪的小公司在1986年进行“内容相似性搜索”。我们给了他们几个演示(真实的,不是假的)吓坏了他们。

我们已经知道的一件事(他们花了很长时间才相信我们)是每个系列都不同,需要它自己的特殊扫描仪来处理这些差异。例如,如果您所做的只是直接报道报道故事,那么生活就很容易。标题主要是告诉你一些有趣的东西,故事是用金字塔形式写的 - 第一段或第二段有谁/什么/何时/什么时候的肉,然后在后面的章节展开。就像我说的,这很容易。

杂志文章怎么样?天哪,不要让我开始!标题几乎总是毫无意义,结构从一个mag到另一个不同,甚至从mag的一个部分到下一个部分。拿起一份有线和大西洋月刊的副本。查看一篇重要文章,并尝试找出文章内容的有意义的 1段摘要。现在尝试描述一个程序如何完成同样的事情。所有文章都适用同一套规则吗?甚至同一杂志的文章?不,他们没有。

很抱歉听起来像个傻瓜,但这个问题真的很难

奇怪的是,谷歌成功的一个重要原因(从搜索引擎的角度来看)是他们非常重视来自其他网站的链接中的文字 。该链接文本表示由其链接到的网站/页面的人完成的一种迷你摘要,正是您在搜索时所需的内容。它适用于几乎所有类型/布局风格的信息。这是一个非常出色的洞察力,我希望自己拥有它。但它不会给我的客户带来任何好处,因为从昨晚的莫斯科电视节目列表中没有链接到他们捕获的一些随机电传消息,或者是一些严重的OCR版本的埃及报纸

/小型咆哮和行程 - 下 - 存储器车道

答案 1 :(得分:14)

一个字:samppipe。

对于新闻领域,在代表性语料库中,我们现在提取准确度为98%/ 99%(平均/中位数)

也非常语言独立(今天,我已经知道它也适用于尼泊尔语。)

免责声明:我是这项工作的作者。

答案 2 :(得分:6)

你见过boilerpipe吗?发现它在类似的问题中提到过。

答案 3 :(得分:5)

我遇到了http://www.keyvan.net/2010/08/php-readability/

  

去年我移植了Arc90的可读性   在Five Filters项目中使用。   现在已经过了一年多了   可读性得到了很大改善 -   感谢Chris Dary和其他人   Arc90团队。

     

作为全文更新的一部分   RSS服务我开始移植更多   最新版本(1.6.2)到PHP和   代码现已上线。

     

对于不熟悉的人,可读性   创建用作浏览器插件   (书签)。只需点击一下即可   转换网页以便于阅读   并消除杂乱。的苹果   最近将其纳入Safari   阅读器。

     

内容也非常方便   提取,这就是我想要的原因   首先将它移植到PHP。

答案 4 :(得分:3)

有一些开源工具可以执行类似的文章提取任务。 https://github.com/jiminoc/goose由Gravity.com开源

它包含wiki的信息以及您可以查看的来源。有许多单元测试显示从各种文章中提取的文本。

答案 5 :(得分:2)

Beautiful Soup是一个用Python编写的健壮的HTML解析器。

它优雅地处理带有错误标记的HTML,并且也被精心设计为Python库,支持迭代和搜索的生成器,子访问的点符号(例如,访问<foo><bar/></foo>' using doc.foo.bar`)和无缝的unicode。

答案 6 :(得分:2)

多年来,我与Peter Rowell合作开展了各种各样的信息检索项目,其中许多项目涉及从各种标记源中提取非常困难的文本。

目前,我专注于从谷歌这样的“firehose”来源中提取知识,包括他们的RSS管道,这些管道可以吸收大量的本地,区域,国家和国际新闻文章。在许多情况下,标题丰富且有意义,但只是用于吸引流量到网站的“钩子”,其中实际文章是无意义的段落。这似乎是一种旨在提高流量评级的“反向垃圾邮件”。

即使使用最简单的文章长度指标对文章进行排名,您也必须能够从标记中提取内容。如今,支配Web内容的异国情调标记和脚本打破了大多数开源解析包,例如Beautiful Soup,当应用于谷歌和类似来源的大量特征时。根据经验,我发现30%或更多的开采物品会破坏这些包装。这使我们重新关注开发非常低级,智能,基于字符的解析器,以将原始文本与标记和脚本分开。解析(即内容分区)越精细,您的工具就越智能(和手工制作)。为了使事情变得更有趣,随着网络创作不断变化,随着新脚本方法,标记和语言扩展的发展而变化,您将拥有一个不断变化的目标。与“收缩包装”应用程序相反,这倾向于支持基于服务的信息传递。

回顾这些年来,似乎很少有关于这种提取的低级机制(即你所提到的“前者的实践”)的学术论文,可能是因为它具有特定的领域和内容。 / p>

答案 7 :(得分:0)

如果您要从大量使用javascript的网页中提取内容,selenium remote control可以完成这项工作。它的工作原理不仅仅是测试。这样做的主要缺点是你最终会使用更多的资源。好处是,您可以从富页面/应用程序获得更准确的数据馈送。