python抽取pdf中的参考文献

news2025/1/12 17:50:19

想将一份 pdf 论文中的所有参考文献都提取出来,去掉不必要的换行,放入一个 text 文件,方便复制。其引用是 ieee 格式的,形如:
ieee-ref
想要只在引用序号(如 [3])前换行,其它换行都去掉,即一行一条参考文献。

可用 pypdf[1],其主页有示例,加上 re 去除非序号前的换行(检测 [)。

Code

from pypdf import PdfReader
import re

# 检测非 `[` 前的换行
pattern = r'\n(?!\[)'

reader = PdfReader("paper.pdf")
n_pages = len(reader.pages)
print(n_pages)

with open("ref.txt", "w", encoding="utf-8") as f:
    for i in range(23, 29): # 自己确定 reference 页码范围
        page = reader.pages[i]
        text = page.extract_text()
        text = re.sub(r'-\n', '', text) # hyphen 后换行:连 hyphen 一齐删
        text = re.sub(pattern, ' ', text) # 多余换行换成空格
        f.write(text)# + '\n')

References

  1. py-pdf/pypdf

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

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

相关文章

XH连接器>KH-XH-5A-Z

品  牌: kinghelm(金航标) 厂家型号: KH-XH-5A-Z 封装: 插件,P2.5mm 商品毛重: 0.429克(g) 包装方式: 袋装

Docker(四)容器相关操作及问题处理

目录 一、进入、退出容器操作 二、查看Docker 容器的配置文件 方法一:进入docker容器内进行查看 方法二:通过数据卷挂载方式查看配置文件 方法三:使用Docker可视化工具查看配置文件 三、容器与宿主机时间同步 方法一:创建启…

Windows 7 SP1 安装VMtools -- 安装失败的解决方法

VMware安装Win7 SP1可以参考这篇文章:https://blog.csdn.net/2301_77225571/article/details/139121179?spm1001.2014.3001.5501 1.下载补丁 https://www.catalog.update.microsoft.com/search.aspx?qkb4474419 2.本机远控Win7 【Win】【R】,输入cmd…

同旺科技 FLUKE ADPT 隔离版发布 ---- 3

所需设备: 1、FLUKE ADPT 隔离版 内附链接; 应用于:福禄克Fluke 12E / 15BMax / 17B Max / 101 / 106 / 107 应用于:福禄克Fluke 15B / 17B / 18B 总体连接: 连接线,根据自己实际需求而定; …

Leetcode刷题笔记4:链表基础2

导语 leetcode刷题笔记记录,本篇博客记录链表基础2部分的题目,主要题目包括: 24 两两交换链表中的节点19 删除链表的倒数第N个节点160 链表相交142 环形链表II 链表的定义 Python中,对于一个链表的节点定义非常简单&#xff0…

容器中的单例集合——List接口的实现类之LinkedList

LinkedList容器类简介 LinkedList容器类也是List接口的一个实现类,但是和之前介绍的ArrayList类、Vector类和Stack类不同,它的底层是通过双向链表结构来实现的。双向链表结构是链表结构的一种,链表结构最大的好处就是大大提高了容器中元素的增…

【Linux】中的常见的重要指令(中)

目录 一、man指令 二、cp指令 三、cat指令 四、mv指令 五、more指令 六、less指令 七、head指令 八、tail指令 一、man指令 Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是 man 语法: m…

吴恩达2022机器学习专项课程C2W2实验:Relu激活函数

目录 代码修改1.Activation2.Dense3.代码顺序 新的内容1.总结上节课内容2.展示ReLU激活函数的好处3.结论 代码案例一代码案例二1.构建数据集2.构建模型 2D1.构建数据集2.模型预测3.扩展 代码修改 1.Activation (1)需要添加代码from tensorflow.keras i…

webman使用summernote富文本编辑器

前言 Summernote富文本编辑器功能强大,可以直接从word直接复制内容过来而不破坏原有的文档格式,非常适合做商品详情等内容的编辑工具。本文将展示如何在php高性能框架webman中使用summernote编辑器。 下载 去Bootstrap 中文网、Summernote、jQuery官网…

小程序视频怎么保存到本地相册

在快节奏的生活中,小程序已成为我们获取信息和娱乐的重要渠道。但当您遇到那些精彩绝伦的小程序视频,是否曾想过如何将它们保存到本地相册,以便随时回味?无论您是安卓用户还是iPhone用户,本文将为您揭秘如何轻松实现这…

SpringBoot3.x 整合 Spring AI

Spring AI 已经发布了一段时间,虽然推出的时候就被人说只是一个套了 API 的壳,但是作为 Spring 生态的一个开源项目,用它来结合到现有业务系统中还是一个比较好的方案,毕竟像笔者当初为了接入 OpenAI 的 API,还专门学了…

计算机考研|408开始的晚,怎么入手复习?六个月保姆级规划

万事开头难,特别是408 大家在第一遍复习408的时候,基本上都有这个问题,就是复习速度慢,理解成本高,因为数据结构,计算机组成原理这些都是大一大二开始学的内容,等到自己准备考研的时候&#xf…

挖掘抖快销售榜TOP500,这些单品正在引爆夏日市场!

凉鞋、短裤、草席、风扇……一个个夏日“限定”品类在4月就开始冲上抖音、快手两大电商的品类销售榜时,预示着夏日营销在春季已悄悄打响。 在炎炎夏日来临之前,品牌方们都会迎接一次夏日营销“大考”,铆足了劲调动消费者的积极性,…

ASP+ACCESS基于WEB网上留言板

摘要 本文概述了ACCESS数据库及其相关的一些知识,着重论述ACCESS数据库和ASP的中间技术,构建一个简单的留言板。具体的实现是构造一个留言板系统,能很方便的和同学沟通和交流。留言板具有功能强大、使用方便的特点。用户以个人的身份进入&am…

【话题】AIGC行业现在适合进入吗

大家好,我是全栈小5,欢迎阅读小5的系列文章,这是《话题》系列文章 目录 引言AIGC的发展阶段市场需求时机是否合适优势挑战 文章推荐 引言 在撰写关于当前是否适合进入AIGC(人工智能生成内容)行业的文章之前&#xff0…

LeetCode HOT 100:3. 无重复字符的最长字串

1. 链接 . - 力扣(LeetCode) 2. 题目描述 3. 题解 方法一:滑动窗口 哈希表 根据题意: 1. 遍历所有可能的子串——利用滑动窗口表示子串; 2. 保证滑动窗口内不包含重复字符——需要哈希表map记录字符出现的下标。…

模型评价指标笔记:混淆矩阵+F1+PR曲线+mAP

评价指标 二分类评价指标 混淆矩阵 TP: 正确预测为了正样本,原来也是正样本 FN: 错误的预测为负样本,原来是正样本 (漏报,没有找到正确匹配的数目) FP: 错误的预测为正样本,原来是负样本 (误报,没有的匹配不正确) TN…

解决ModuleNotFoundError: No module named ‘dnnlib‘问题

复现论文采用了大佬的库,这时候运行报错: 尝试采用:pip install dnnlib解决,但下载源中并不包含该依赖。 解决方法: pip install https://github.com/podgorskiy/dnnlib/releases/download/0.0.1/dnnlib-0.0.1-py3-n…

带你看懂认沽期权交易是什么意思?

今天期权懂带你了解带你看懂认沽期权交易是什么意思?认沽期权是期权交易中的一种方向性策略,也被称为“看跌期权”。 认沽期权交易是什么意思? 认沽期权,亦称为看跌期权,是期权交易中的一种类型,它提供给买…

【NVM】持久内存的架构

1 内存数据持久化 1.1 数据持久化 持久内存系统包含如下关键组件:微处理器、连接微处理器内存总线上的持久内存模组(Persistent MemoryModule,PMM)及持久内存上的非易失性存储介质。 使用持久内存来实现数据的持久化&#xff0c…