怎样抓取网页数据(sirrice.io/files-vldb08.pdf抓表类型的数据)

优采云 发布时间: 2021-09-30 08:11

  怎样抓取网页数据(sirrice.io/files-vldb08.pdf抓表类型的数据)

  我好久没写了。我觉得我写的太模糊了。今年我开始多写一些东西。它更接近于案例研究类型,但它仍然是一篇与ml和系统相关的论文。为了避免翻车,先写一些熟悉的东西。今天我们就来看看如何从网上抓取表格类型的数据。原论文在这里:sirice.github.io/files/papers/webtables-vldb08.pdf

  捕获表类型数据的问题可以分为两个小问题:

  两种主要方法:

  在规模上,Google 2008 年抓取了 140 亿个 HTML 表格数据。在此基础上,他们首先做了一些基本的清理工作(例如,很多表格仅用于布局),以及一些基本的解析器工作(例如,那些表示表的属性)。清洗后,大约有 1% 的数据是真正的关系型数据库。每天,Google 上约有 3000 万次搜索与这些表格数据的结果相关。这里最难解决的问题是之前所有的表都具有不同的形状。搜索后,如何根据相关性对它们进行排序,以及如何设计此数据模型。

  数据模型

  这里有一些有趣的点

  他们的召回率和准确率数据:

  

  这是他们需要区分论文中的表格时给出的示例

  

  这个html上面的表格不是数据,只是为了排版。下表确实是数据,下表是可搜索的。

  在数据库中捕获这些表后,您需要开始排序。在排序之前,需要定义如何定义每个表之间的相似度

  

  如果两个表的属性集相同,那么我们假设它们的结构也相同。在“相似”的定义之下,表与表之间应定义ACS(属性相关统计)的算法如下:

  

  A 应该只是一个哈希表。如果你之前看到的表的数据没有这个表的域名,那就把这个表的域名加入到seenDomain中,然后把这组属性的出现频率加1。

  这种简单算法的优点是

  定义这些概率后,我们可以开始讨论搜索

  搜索

  这是他们的搜索结构

  

  这个主要是给大家看一下,而不是讨论,因为还是比较清楚的。这个系统的搜索结构是这样的

  

  排序时,我们有四种算法可供选择。第一个算法是朴素排序

  

  该算法基于以前搜索引擎的数据。在搜索引擎的前K中寻找相关表格,如果有就显示出来。不管多么天真,这个算法也只能在谷歌内部使用。. . .

  

  第二种算法总是从搜索引擎结果中搜索,直到找到 N 个表。这也是谷歌特有的算法

  

  第三种算法是自己构建一个ranker,根据表的一些基础数据进行排序。他们找到两个人的标签(不是一个,不是三个,而是两个……)。这个模型最重要的特点是

  这个算法还是感觉有点飘

  

  第四种算法类似于第三种算法,但增加了一个新定义的一致性分数。一致性分数是这些属性的接近程度。该算法的基础是Pointwise Mutual Information。如果你有兴趣,可以在这里阅读:Pointwise互信息。

  在检索的时候,这个表的x和y位置也会被检索出来,这样它们就可以有一些更有趣的应用,比如'只要法国和巴黎在同一行数据'。

  这个 ACS 有一些有趣的用途。例如,我们可以对列表进行自动完成

  

  此外,您还可以找到不同属性的同义词

  

  找同义词的算法是找出所有与C(context)相关的schema,然后根据函数syn看两个词是否相关

  

  syn的函数定义如下

  

  这里写的所有条件概率部分都和前面提到的算法一样

  最后一个问题是推荐不同的schema时会出现重复的问题。比如'size'这个概念就会和体重、国家等各种概念相关联,那么此时最好的体重类型schema就被聚类了。Cluster的算法定义如下

  

  聚类算法与之前的一致性基本相同,有一些细微的变化

  文章 最后一段讲这个东西的效果如何。我不会发布它。有兴趣的可以自己去看看。原文在这里sirice.github.io/files/papers/webtables-vldb08.pdf。我以前做过类似的事情,但我没有整理出来。我会在几天内整理出来,并告诉你如何去做。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线