基于论文的大模型应用:基于SmartETL的arXiv论文数据接入与预处理(一)

news2025/4/18 7:50:36

1. 背景

arXiv简介(参考DeepSeek大模型生成内容):

  • arXiv(发音同“archive”,/ˈɑːrkaɪv/)是一个开放的学术预印本平台,主要用于研究人员分享和获取尚未正式发表或已完成投稿的学术论文。
  • 创建于1991年,最初服务于高能物理领域,后扩展至数学、计算机科学、定量生物学、统计学等多学科。
  • 截至2023年,收录论文超200万篇,月均访问量超3000万次
  • 已成为许多领域(如理论物理、机器学习)的首发平台,例如AlphaGo、GPT等突破性研究均先发布于arXiv。
  • 支持按学科、关键词、作者等检索,并提供每日更新订阅服务。
  • arXiv通过即时共享研究成果,显著推动了开放科学运动,尤其在高动态领域(如人工智能)中成为不可或缺的工具。

由于arXiv的这些特点,对于做科技动态跟踪来说,arXiv就是一个重要的论文来源。通过对arXiv论文进行采集、处理和分析,可以帮助我们了解前沿热门技术分析技术研究的演化脉络构建学术合作网络辅助开展科研等。

2. 需求简介

计划通过大模型技术(RAG、DeepSearch等)帮助对论文进行阅读理解、提取关键信息,能够回答我们提出的问题,例如论文的主要创新点是什么,或者论文的实验结果相比之前的SOTA提升了多少百分点

整理一下技术需求,包括以下关键内容:

  1. arXiv论文数据采集:通过某种方式,实现最新论文的持续采集,从而获取最新的论文数据。
  2. 论文信息抽取:通过直接采集或对采集原始数据进行抽取的方式,获取论文题目、作者、摘要、正文、表格、图表、参考文献、附录等信息。
  3. 数据存储:基于某种数据库或文件系统,对下载及抽取的论文数据进行保存,从而方便查询、展示。需要设计合适的ID机制精确定位每一篇论文。
  4. 建立索引:为了支持从大量论文中快速查找最相关的论文,需要建立索引。以往主要是建立全文索引(比如基于ElasticSearch),当前大模型技术背景下,则还需要建立向量索引(基于某种向量数据库如Qdrant)。
  5. 跨模态检索:由于论文中的表格和图表信息也很重要,不仅需要对元信息和正文建立全文索引、文本向量化索引,还需要对表格、图表建立某种索引。目前先考虑对图表建立向量化索引,从而支持进行论文图片的语义匹配。
  6. 论文内容细粒度抽取识别:针对一些更复杂需求(如进行技术分析、构建技术发展脉络等),可能还需要对论文正文文本、表格、图表等进一步抽取识别;若需要建立学者合作网络,则需要对作者信息进行准备识别,并进行学者链接;若需要建立论文引用关系网络,则需要对参考文献部分进行解析,并与已有的论文库进行链接;等等。这类需求非常复杂本文暂不考虑。(在知识图谱时代,为了实现很多复杂需求,就必须做这些工作。但现在很多技术都可以被大模型技术代替。)

3. 准备工作

由于任务背景与需求较为复杂,需要开展数据调研,搞清楚到底可以从哪些渠道获取数据,根据数据源的情况确定采用什么样的技术实施方案。这是非常重要的,如果可以获取相对结构化的数据,可能就不需要做诸如PDF解析抽取等复杂工作。

3.1.数据源

3.1.1.arXiv官网网页

首先想到的是arXiv官网,提供了搜索和详情阅读功能。

搜索功能按照领域提供单独的URL,如计算机科学主页是https://arxiv.org/search/cs,其中cs是Computer Science的缩写。支持输入关键词,支持选择搜索的字段。
在这里插入图片描述
当我们输入关键词进行搜索,系统默认返回50篇。URL中显示了搜索关键词(query=RAG)、搜索字段(searchtype=all)、排序顺序(order=-announced_date_first,应该是指最初发布时间的倒序)、每页数量(size=50)。搜索结果中包含了论文编号(如2504.02458)、PDF格式链接、其他格式链接、子领域(cs.IR,即计算机科学领域的信息检索子领域)、主题(如Retrieval-Augmented Purifier for Robust LLM-Empowered Recommendation)、作者(如Liangbo Ning)、论文摘要、提交日期、最初发布时间(只到月份),以及备注(可能没有)。基于爬虫技术,可以快速实现论文搜索,获取指定关键词匹配的论文的基本信息。
在这里插入图片描述
打开PDF链接,可以看到浏览器直接显示了论文的PDF文件内容。可以注意到网页链接(以arxiv.org/pdf/为前缀,加上论文编号)非常简洁、有规律。
在这里插入图片描述
至此,我们可以通过搜索页面,获取指定关键词的论文的基本信息,然后根据ID下载PDF文件。
考虑到论文编号(ID)存在明显的规律,YYMM.nnnnn,年月+5位数字编号,因此如果需要大规模的采集,也许可以通过直接构造ID下载PDF格式论文。

3.1.2.arXiv官网API

实际上arXiv官网提供了搜索API,完全不需要我们去用传统爬虫的方式去获取论文信息。查看详情以及详情。

对于Python开发者,既可以直接通过requests库访问arXiv API(请求示例),还可以通过基于该API封装的python包进行,安装arxiv库即可使用,查看详情。arxiv库除了获取论文基本信息外,还提供了论文下载方法,可获取论文源文件和PDF文件,并且支持对搜索结果进行批量下载。样例数据 为API返回结果的样例(XML格式),对应的JSON格式样例。

3.1.3.arXiv官网RSS订阅

基于arXiv官网API可以根据指定关键词或ID进行论文搜索、下载,获取论文基本信息、源文件、PDF文件等。但是如何进行持续采集呢?如何自动获取最新的论文数据?针对这个需求,arXiv提供了RSS订阅,支持按照领域和子领域获取,查看RSS说明。RSS订阅数据每天更新一次,在美国东部时间的午夜,也就是北京时间12点-13点左右,理论上,可以让用户在下午看到当天中午以前发布的论文,时效性已经挺好的了。

RSSXML格式,可引入XML解析库进行解析。不过注意,RSS只包含论文基本信息,源文件和PDF文件需要单独下载(可以配合arxiv库进行)。
在这里插入图片描述

3.1.4.kaggle数据集

上述方法可以获取特定主题的论文以及最新的论文。如果需要获取更多历史数据呢?或者如果需要构建一个足够大的论文库以支持长时间跨度分析,有比搜索更好的方法吗?

首先想到的是暴力采集方法,通过构造论文编号,利用arxiv库进行基本信息获取和论文下载。不过这个需要进行大量的请求,考虑到arxiv网站的访问限制策略,可能需要花费很漫长的时间。

幸运的是,在kaggle平台上,官方机构提供了每周更新的数据集,可以直接从kaggle下载,或者通过谷歌云平台下载。目前JSON格式文件约4.6G(zip格式1.5G左右),每周下载一次,对带宽和处理要求都不高。注意,源文件或PDF文件仍需要单独下载。这里查看样例数据,其中包含了1000条数据供测试。
在这里插入图片描述

3.1.5 小结

综合来说,可以采取一次性下载kaggle数据集+RSS订阅跟踪的方式,实现最新论文元数据的持续获取。对于源文件和PDF文件,则需要综合考虑业务需求和资源情况。按照每月3万篇、每个PDF文件3MB估算,则每天需要下载3GB;在不考虑IP资源池的情况下,每次请求需要间隔3秒左右,约需要1个小时左右,总体压力不大。对于超过200万历史数据,需要下载6TB左右,按1MB/s下载速度估算需要140天左右。

3.2.信息抽取

上述方法提供了论文的基本信息,但没有正文、表格、图表、参考文献、附录等信息,需要基于原始数据进行信息抽取。

3.2.1.基于MinerU的PDF内容抽取

一开始以为arXiv仅提供PDF格式文件,以及考虑到大部分论文平台都是提供PDF格式文件,因此考虑基于PDF进行抽取。由于PDF格式特殊性,虽然有不少PDF解析库(如pdfminerpdfplumberCamelotApache PDFBox等),但是效果不佳。甚至有针对PDF解析的大模型技术研究。

MinerU是一款基于大模型的文档内容提取工具,代码开源,效果较好。MinerU可以直接解析生成Markdown格式内容,可以用于大模型的输入(RAG的上下文),这也是我们考虑使用MinerU的一个重要原因。在此之前,已经在SmartETL中实现了markdown格式解析为层级化JSON结构,可以方便构建层级化索引。

考虑到文档解析的广泛需求,将MinerU部署为docker镜像,并进行API封装,方便调用。

实验测试发现,MinerU(没有GPU加速)抽取一页需要大约20秒,对于20页的论文,则需要7分钟左右。

3.2.2.arXiv官网HTML网页内容抽取

其实,arXiv除了提供PDF格式,还提供源文件以及HTML文件。相比PDF抽取,HTML解析会简单、高效和准确得多。需要注意:(1)HTML页面的URL不仅有ID编号,还有一个版本号(如v1);(2)少量论文可能没有对应的HTML。
在这里插入图片描述
通过浏览器审查,发现HTML页面结构设计规范,便于进行抽取:
在这里插入图片描述
另外对于论文中图片,HTML页面是通过图片链接的方式包含,因此需要通过解析HTML构造图片绝对URL,进而下载图片。

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

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

相关文章

cpp经典数论问题

题目如下 思路 代码如下

C++中如何比较两个字符串的大小--compare()函数实现

一、现在有一个问题描述&#xff1a;有两个字符串&#xff0c;要按照字典顺序比较它们的大小&#xff08;注意所有的小写字母都大于所有的大写字母 &#xff09;。 二、代码 #include <bits/stdc.h> using namespace std;int main() {string str1 "apple";…

Scala面向对象2

1. 抽象属性和方法&#xff1a;用 abstract 关键字定义抽象类&#xff0c;其中抽象属性无初始值&#xff0c;抽象方法无实现 。重写抽象方法需用 override &#xff0c;重写抽象属性时&#xff0c;可变属性用 var &#xff0c;不可变属性用 val 。 匿名子类&#xff1a;和 Jav…

【FPGA基础学习】状态机思想实现流水灯

目录 一、用状态机实现LED流水灯1.状态机思想简介1. 1基本概念1.2.核心要素1.3分类与模型 2.LED流水灯 二、CPLD与FPGA1.技术区别2.应用场景3.设计选择建议 三、HDLbits组合逻辑题目 一、用状态机实现LED流水灯 1.状态机思想简介 1. 1基本概念 ​ 状态机&#xff08;Finite …

图片尺寸修改软件下载

【图片尺寸调整工具v1.0&#xff1a;高效便捷的图像处理助手】 图片尺寸调整工具v1.0是一款专为简化图像处理流程设计的轻量级软件&#xff0c;兼顾高效批量处理与个性化单图调整需求。该工具以"零学习成本"为核心设计理念&#xff0c;通过简洁直观的交互界面&#…

MySQL-SQL-DDL语句、表结构创建语句语法、表约束、表数据类型,表结构-查询SQL、修改SQL、删除SQL

一.SQL SQL&#xff1a;一门操作关系型数据库的编程语言&#xff0c;定义操作所有关系型数据库的统一标准 二. DDL-数据库 1. 查询所有数据库 命令&#xff1a;show databases; 2. 查询当前数据库 命令&#xff1a;select database(); 3. 创建数据库 命令&#xff1a;create da…

网络钓鱼攻击的威胁和执法部门的作用(第一部分)

在当今的数字世界中&#xff0c;网络犯罪分子不断开发新技术来利用个人、企业和政府机构。 最普遍和最具破坏性的网络犯罪形式之一是网络钓鱼——一种社会工程手段&#xff0c;用于欺骗人们提供敏感信息&#xff0c;例如登录凭据、财务数据和个人详细信息。 随着网络钓鱼攻击…

鸿蒙版(ArkTs) 贪吃蛇,包含无敌模式 最高分 暂停和继续功能

鸿蒙版(ArkTs) 贪吃蛇&#xff0c;包含无敌模式 最高分 暂停和继续功能; 效果图如下&#xff1a; 代码如下&#xff1a; // 所有import语句必须放在文件开头 import router from ohos.router; import promptAction from ohos.promptAction; // Add this import at the top wit…

解决Win11耳机没有声音的问题

方法一&#xff1a;更新驱动程序&#xff08;有效&#xff09; 进入 “设置”&#xff08;快捷键&#xff1a;WinX&#xff09;&#xff0c;点击 “Windows 更新” → “高级选项” 点击 “可选更新” &#xff0c;然后点击 “驱动程序更新” 【注】&#xff1a;更新后可能会出…

【spring02】Spring 管理 Bean-IOC,基于 XML 配置 bean

文章目录 &#x1f30d;一. bean 创建顺序&#x1f30d;二. bean 对象的单例和多例❄️1. 机制❄️2. 使用细节 &#x1f30d;三. bean 的生命周期&#x1f30d;四. 配置 bean 的后置处理器 【这个比较难】&#x1f30d;五. 通过属性文件给 bean 注入值&#x1f30d;六. 基于 X…

内网渗透(杂项集合) --- 中的多协议与漏洞利用技术(杂项知识点 重点) 持续更新

目录 1. NetBIOS 名称的网络协议在局域网中内网渗透中起到什么作用 2. 使用 UDP 端口耗尽技术强制所有 DNS 查找失败&#xff0c;这个技术如何应用在局域网内网渗透测试中 3. 在本地创建一个 HTTP 服务来伪造 WPAD 服务器 什么是 WPAD 服务器&#xff1f;这个服务器是干嘛的…

el-tabs添加按钮增加点击禁止样式

前置文章 一、vue使用element-ui自定义样式思路分享【实操】 二、vue3&ts&el-tabs多个tab表单校验 现状确认 点击添加按钮&#xff0c;没有点击样式&#xff0c;用户感知不明显没有限制最大的tab添加数量&#xff0c;可以无限添加 调整目标&代码编写 调整目标…

LINUX 5 vim cat zip unzip

dd u撤销 ctrlr取消撤销 q!刚才的操作不做保存 刚才是编辑模式 现在是可视化模式 多行注释

PDFBox渲染生成pdf文档

使用PDFBox可以渲染生成pdf文档&#xff0c;并且自定义程度高&#xff0c;只是比较麻烦&#xff0c;pdf的内容位置都需要手动设置x&#xff08;横向&#xff09;和y&#xff08;纵向&#xff09;绝对位置&#xff0c;但是每个企业的单据都是不一样的&#xff0c;一般来说都会设…

Batch Normalization:深度学习训练的加速引擎

引言 在深度学习的发展历程中&#xff0c;训练深度神经网络一直是一项极具挑战性的任务。随着网络层数的增加&#xff0c;梯度消失、梯度爆炸以及训练过程中的内部协变量偏移&#xff08;Internal Covariate Shift&#xff09;问题愈发严重&#xff0c;极大地影响了模型的收敛…

低空经济基础设施建设方向与展望

随着科技的不断进步&#xff0c;低空经济正逐渐成为推动国家经济发展的新引擎。低空经济&#xff0c;指的是在低空范围内进行的各种经济活动&#xff0c;包括但不限于无人机物流、空中交通管理、低空旅游、农业监测等。本文将探讨低空经济基础设施建设的方向与未来展望。 1. 低…

如何保证RabbitMQ消息的可靠传输?

在这个图中&#xff0c;消息可能丢失的场景是1&#xff0c;2&#xff0c;3 1.在生产者将消息发送给RabbitMQ的时候&#xff0c;消息到底有没有正确的到达服务器呢&#xff0c;RabbitMQ提供了两种解决方案&#xff1a; a. 通过事务机制实现&#xff08;比较消耗性能&#xff0…

Sentinel核心源码分析(上)

文章目录 前言一、客户端与Spring Boot整合二、SphU.entry2.1、构建责任链2.2、调用责任链2.2.1、NodeSelectorSlot2.2.2、ClusterBuilderSlot2.2.3、LogSlot2.2.4、StatisticSlot2.2.5、AuthoritySlot2.2.6、SystemSlot2.2.7、FlowSlot2.2.7.1、selectNodeByRequesterAndStrat…

Systemd安全加密备份系统与智能通知

实训背景 你是一家金融科技公司的系统架构师&#xff0c;需为敏感数据设计一套安全备份系统&#xff0c;满足以下需求&#xff1a; 加密存储&#xff1a;自动解密插入的LUKS加密USB设备&#xff0c;挂载到安全目录。备份验证&#xff1a;备份完成后校验文件完整性&#xff0c…

6.0 使用Qt+ OpenCV+Python加载图片

本例作为python图像处理的入门课程1,使用Qt+ OpenCV+Python加载图片。 主要有如下几个地方需要注意: 1. OpenCV 默认使用 BGR 格式,而 Qt 使用 RGB。显示前需要转换:cv2.cvtColor(img, cv2.COLOR_BGR2RGB),一般使用某个QLabel控件进行显示。 pic = cv2.cvtColor(pic, cv2.C…