【大模型 数据增强】NeuScraper:神经网络抓取工具,超传统网页抓取工具20%

NeuScraper:神经网络抓取工具,从网页中提取主要内容

    • 提出背景
    • 流程框架
      • 精细拆解
    • 效果对比

 


提出背景

论文:https://arxiv.org/pdf/2402.14652.pdf

代码:https://github.com/OpenMatch/NeuScraper

假设我们需要从一个新闻网站上抓取文章内容,用于语言模型的预训练。

这个网页包含了文章的正文内容、图片、广告、导航栏以及各种社交媒体分享按钮。

传统Web抓取工具

  • 使用规则或启发式方法:传统工具依赖于预定义的规则或启发式方法来确定哪些HTML元素包含需要的文章内容。

    例如,可能会搜索特定的<div><article>标签。

  • 规则的脆弱性:如果网站的布局发生变化(这在现代Web开发中很常见),规则可能会失效,导致抓取到的内容包含广告或完全错过关键信息。

  • 人力成本:需要不断更新规则以适应网页的变化,这是一个持续的人力投入过程。

NeuScraper(神经网络抓取工具)

  • 使用神经网络和布局信息:NeuScraper利用神经网络来理解页面的整体布局和内容结构,自动识别并提取文章的正文内容。
  • 它通过分析页面元素的视觉和结构特征来判断哪些内容是主要文章,而忽略广告和其他非目标内容。

优势

  • 自适应性:即使网页布局发生变化,NeuScraper也能够通过其训练过的模型适应这些变化,继续准确提取内容。
  • 降低人力成本:减少了持续维护和更新规则的需要,因为模型能够学习和适应新的页面结构。
  • 提高数据质量:能够更准确地区分正文内容和非目标内容(如广告),提高了抓取数据的质量。

NeuScraper与传统Web抓取工具的主要区别在于其对复杂Web页面内容的处理能力。

NeuScraper通过神经网络和布局信息的综合分析,提供了一种更为高效、自适应且需要更少人力干预的解决方案。

这不仅降低了数据预处理的工作量,还显著提高了为语言模型预训练所准备数据集的质量。

流程框架

使用NeuScraper提取网页主要内容的流程
在这里插入图片描述

首先将网页转化为文本序列模型,然后通过神经方法进行Web抓取。

在示例中,它标出了要提取的文本区域,例如标题和正文,并将它们转换成了相应的标签和序列。

 

精细拆解

NeuScraper = 特征1(文本序列的生成)+ 特征2(文本编码)+ 特征3(节点表示的获取)+ 特征4(标签预测)

  • 特征1(文本序列的生成):之所以使用文本序列的生成,是因为它允许NeuScraper准确地保留网页的结构和内容信息,为后续的神经网络处理提供基础。
  • 特征2(文本编码):使用XLM-Roberta模型的第一层进行文本编码是因为它能有效地将DOM节点的文本内容转换为高维表示,便于进一步分析。
  • 特征3(节点表示的获取):通过3层Transformer模型获取节点表示,是因为Transformer能够处理序列数据的依赖关系,提高内容分类的准确性。
  • 特征4(标签预测):使用Sigmoid函数和MLP进行标签预测的方法是因为它们可以有效地从节点表示中计算出每个节点属于特定类别的概率,支持多标签分类问题。

比如抓取在线购物网站,我们可以使用NeuScraper来提取产品页面的关键信息,如产品标题、描述、价格和用户评论。

  1. 特征1(文本序列的生成)

    • 网页上的HTML代码通过NeuScraper转换为文本序列,以便后续处理。
    • 例如,产品页面的HTML结构会被转换为表示DOM节点顺序的序列。
  2. 特征2(文本编码)

    • 使用NeuScraper中的XLM-Roberta模型的第一层来编码每个DOM节点的文本内容。
    • 比如,产品名称<h1>Awesome Widget</h1>会被转换为768维的向量表示。
  3. 特征3(节点表示的获取)

    • 这些文本编码后的向量会被输入到一个3层Transformer模型中。
    • 在这个例子中,Transformer模型可能会识别出产品描述的段落由于其文本密度和结构上的特点与其他内容(如导航菜单或页脚)不同。
  4. 特征4(标签预测)

    • 最后,通过Sigmoid函数和MLP网络对每个节点进行标签预测,以确定它是否包含关键信息。
    • 在这个例子中,模型可能会预测<h1>标签包含的是产品标题,而包含价格信息的<span class="price">标签则被标记为价格信息。

使用NeuScraper,我们可以自动化地从大量产品页面中提取和分类信息,用于建立产品数据库、价格监测、市场分析或推荐系统。

减少了人工标注的需求,并提高了处理大规模数据集时的效率和准确性。
 

效果对比

在这里插入图片描述
NeuScraper与其他方法在准确度(Acc.)、精确度(Prec.)、召回率(Rec.)、F1得分和延迟(Latency)这些评价指标上的总体性能对比。

NeuScraper在所有指标上都有较高的得分,特别是在F1得分上相比其他方法有显著提高,并且在延迟上也有优势,只有6.18ms。

专为大模型设计,神经网络抓取比基础抓取工具,涨幅超20%!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2805948.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

TensorRT及CUDA自学笔记003 CUDA编程模型、CUDA线程模型及其管理、CUDA内存模型及其管理

TensorRT及CUDA自学笔记003 CUDA编程模型、CUDA线程模型及其管理、CUDA内存模型及其管理 各位大佬&#xff0c;这是我的自学笔记&#xff0c;如有错误请指正&#xff0c;也欢迎在评论区学习交流&#xff0c;谢谢&#xff01; CUDA编程模型 我们使用CUDA_C语言进行CUDA编程&am…

备战蓝桥杯---基础算法刷题2

题目有一点水&#xff0c;不过还是有几个好题的&#xff0c;我在这分享一下&#xff1a; 很容易想到先往最高处跳再往最低处跳&#xff0c;依次类推&#xff0c;那怎么保证其正确性呢&#xff1f; 证法1. 在此&#xff0c;我们从0开始&#xff0c;假设可以跳到a,b,c(a<b<…

js之事件代理/事件委托

事件代理也叫事件委托&#xff0c;原理&#xff1a;利用DOM元素的事件冒泡&#xff0c;指定一个事件的处理程序就可以管理某一类型的所有事件。 事件冒泡和事件捕获 如上图所示&#xff0c;事件传播分成三个阶段&#xff1a; 捕获阶段&#xff1a;从window对象传导到目标节点&…

即时设计和Axure对比,哪一个好用?

无论是国外页面设计工具&#xff0c;页面设计工具的发展从来没有停滞过&#xff0c; Axure&#xff0c;无论是国产设计工具即时设计&#xff0c;其功能都在不断更新迭代&#xff0c;为设计带来更高效的设计体验。今天对比两个设计工具&#xff0c;帮你找到最适合自己的&#xf…

C#与VisionPro联合开发——串口通信

串口通信 串口通信是一种常见的数据传输方式&#xff0c;通过串行接口&#xff08;串口&#xff09;将数据以串行比特流的形式进行传输。在计算机和外部设备之间&#xff0c;串口通信通常是通过串行通信标准&#xff08;如RS-232&#xff09;来实现的。串口通信可以用于连接各…

在Ubuntu中使用python

目录 一、利用vim使用python 1、下载vim 2、使用vim创建python文件 3、编辑完成后的vim操作 4、如何运行 5、vim常见操作 二、安装Jupyter 1、更新系统 2、安装pip 注&#xff1a;pip无法应用的原因及解决方案 3、安装Jupyter 4、打开Jupyter 三、安装其他Python模…

如何食用Kaggle的Course中的exercise?

前言 读完本文只需要几分钟&#xff0c;读完后你将知道&#xff1a; 如何连接kaggle的反馈系统如何检查代码正确性如何查看提示如何查看答案。 关于Setup 通常最上面的会有一块代码&#xff0c;它的功能是连接kaggle的反馈系统&#xff0c;这样才能执行能够提供反馈的代码。…

离散数学(一) 集合

属于关系 表示 枚举法&#xff1b; 叙述法&#xff1b; 文氏图法 基数 空集 全集 全集是相对唯一的 相等关系 有相同元素看作一个元素 包含关系 幂集 集合运算 并集 交集 补集 差集 对称差集 定理 可数集合与不可数集合 自然数集 等势 如果存在集合A到集合B的双射(又称一一…

kafka为什么性能这么高?

Kafka系统架构 Kafka是一个分布式流处理平台&#xff0c;具有高性能和可伸缩性的特点。它使用了一些关键的设计原则和技术&#xff0c;以实现其高性能。 上图是Kafka的架构图&#xff0c;Producer生产消息&#xff0c;以Partition的维度&#xff0c;按照一定的路由策略&#x…

JavaSE-05笔记【面向对象02】

文章目录 1. 类之间的关系2. is-a、is-like-a、has-a2.1 is-a2.2 is-like-a2.3 has-a 3. Object类3.1 toString()3.2 finalize()&#xff08;了解即可&#xff09;3.3 与 equals 方法 4. package 和 import4.1 package4.2 import4.3 JDK 常用开发包 5. 访问权限控制5.1 privat…

AutoHotKey 双击Ctrl 打开指定程序、网页

一、AutoHotKey 下载 CSDN 下载链接&#xff1a;AutoHotKey V2.0.11 二、编写脚本 新建一个txt文本, 如&#xff1a;myHotKey.txt; 支持中文名称、目录; 修改文件扩展名为 ".ahk"; 右击文件&#xff0c;开始编辑文件&#xff1a; 编写、复制以下代码&#xff0c…

C++标准库与Boost库:功能丰富的开发工具集

C标准库与Boost库&#xff1a;功能丰富的开发工具集 C是一种强大的编程语言&#xff0c;而C标准库和Boost库则为C开发者提供了广泛的工具和功能。本文将深入探讨C标准库和Boost库&#xff0c;介绍它们的特点、提供的功能以及如何在项目中使用它们来加速开发过程和提高代码质量。…

【C++】类与对象—— 初始化列表 、static 静态成员、

类与对象 1 再谈构造函数1.1 构造函数体赋值1.2 初始化列表语法&#xff1a;建议&#xff1a;初始化顺序&#xff1a;注意&#xff1a; 1.3 explicit关键字 2 static 静态成员2.1 概念2.2 声明成员变量2.3 使用类的静态成员2.4 定义静态成员总结 Thanks♪(&#xff65;ω&#…

防御保护——笔记(8-11)

内容安全 攻击可能只是一个点&#xff0c;防御需要全方面进行 IAE引擎 DFI和DPI技术--- 深度检测技术 DPI --- 深度包检测技术--- 主要针对完整的数据包&#xff08;数据包分片&#xff0c;分段需要重组&#xff09;&#xff0c;之后对数据包的内容进行识别。&#xff08;应用层…

【Flink精讲】Flink组件通信

主要指三个进程中的通讯 CliFrontendYarnJobClusterEntrypointTaskExecutorRunner Flink内部节点之间的通讯使用Akka&#xff0c;比如JobManager和TaskManager之间。而operator之间的数据传输是利用Netty。 RPC是统称&#xff0c;Akka&#xff0c;Netty是实现 Akka与Ac…

STL用法

参考原文&#xff1a;C中STL用法超详细总结&#xff08;收藏级&#xff09; - 知乎 1 什么是STL&#xff1f; STL&#xff08;Standard Template Library&#xff09;&#xff0c;即标准模板库&#xff0c;是一个具有工业强度的&#xff0c;高效的C程序库。它被容纳于C标准程…

【紫光同创国产FPGA教程】——(盘古EU22K开发板/PGL22G第四章)数字时钟实验例程

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 适用于板卡型号&#xff1a; 紫光同创PGL22G开发平台&#xff08;盘古EU 22K&#xff09; 仅需一根TypcC线&#xff0…

【牛牛送书 | 第四期】《高效使用Redis:一书学透数据存储与高可用集群》带你快速学习使用Redis

前言&#xff1a; 当今互联网技术日新月异&#xff0c;随着数据量的爆炸式增长&#xff0c;如何高效地存储和管理数据成为了每个公司都必须面对的挑战。与此同时&#xff0c;用户对于应用程序的响应速度和稳定性要求也越来越高。在这个背景下&#xff0c;Redis 作为一个…

消息中间件篇之RabbitMQ-消息不丢失

一、生产者确认机制 RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。消息发送到MQ以后&#xff0c;会返回一个结果给发送者&#xff0c;表示消息是否处理成功。 当消息没有到交换机就失败了&#xff0c;就会返回publish-confirm。当消息没有到达MQ时&…

Vue3 学习笔记(Day4)

「写在前面」 本文为尚硅谷禹神 Vue3 教程的学习笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。推荐先按顺序阅读往期内容&#xff1a; 1. Vue3 学习笔记&#xff08;Day1&#xff09; 2. Vue3 学习笔记&#xff08;Day2&…