用Python+ChatGPT批量生成论文概述

article/2024/12/22 2:07:27

用Python+ChatGPT批量生成论文概述

做算法研究离不开阅读大量论文。从海量论文中找到需要的论文往往耗费算法团队不少的精力。

ChatGPT官方例子中有一个“TL;DR”摘要生成,非常适合生成论文摘要。

在这里插入图片描述

于是我用python+GPT-3 API开发了一个工具,可以直接从arxiv地址生成论文概述。实现步骤如下:

文章目录

    • 下载论文
    • pdf转文本
    • 用GPT-3生成概述
    • 输出概述
    • 集成测试
    • 总结

下载论文

第一步,我们要先拿到论文正文。

从arxiv上下载论文非常简单,如果你知道论文编号(比如2302.08996),那么论文的pdf下载地址为:https://arxiv.org/pdf/[论文编号].pdf。我们只需要发起网络请求即可将论文下载到本地。

我这里使用requests库发起网络请求,你可以使用任何你喜欢库完成论文下载。

def download_paper(paper_id: str, file_name: Optional[str] = None) -> Optional[str]:""" 根据论文id将论文下载到本地Parameters-----------paper_id: str论文idfile_name: Optional[str]本地文件名,如果为空则用论文id做文件名Returns-------result: Optional[str]论文下载结果。成功则返回本地文件路径,失败则返回None"""paper_url = f"https://arxiv.org/pdf/{paper_id}.pdf"if not file_name:file_name = f"{paper_id}.pdf"res = requests.get(url=paper_url)if res.status_code == 200:with open(file_name, "wb") as f:f.write(res.content)return file_namereturn None

pdf转文本

ChatGPT只接受文本输入,所以拿到论文后,我们需要将pdf格式的论文转换为纯文本。这里给大家推荐一个好用的pdf转文本库——pdfplumber

pdfplumber使用非常简单,只要打开文件,即可通过pdfplumber.pages获取到每一页pdf内容。然后调用pdfplumber.Page类的extract_text()方法就能提取页面的文本。示例代码如下:

def pdf2txt(file_name: str | pdfplumber.PDF, page_start: int, page_end: int) -> str:"""Parameters-----------file_name: str | pdfplumber.PDFpdf文件路径或pdfplumber.PDF实例page_start: int要转换的起始页页码page_end: int要转换的结束页页码Returns-------content: str转换后的文本"""content = ""if isinstance(file_name, str):pages = pdfplumber.open(file_name).pageselif isinstance(file_name, pdfplumber.PDF):pages = file_name.pageselse:raise AttributeError("需要传入pdf路径或PDF对象")for page in pages[page_start:page_end]:content += page.extract_text()return content

上面的代码会逐页提取给定pdf文档指定页码范围内的内容并返回。

用GPT-3生成概述

有了文本,我们就可以用ChatGPT来生成概述了。

首先我们导入openai库,并配置好参数:

import openaiopenai.api_key = "YOUR_API_KEY"TLDRParameter = {"model": "text-davinci-003","max_tokens": 2048,"temperature": 0.3,"top_p": 1.0,"frequency_penalty": 0.0,"presence_penalty": 0.0,"stop": ["\n\n"]
}tldr_tag = "\n\n tl;dr:" # 给ChatGPT明确的文本补全意图

这里的tldr_tag需要稍微解释一下,这段字符串会添加在我们论文文本的末尾,用于提示ChatGPT我们要做的是上面文本的摘要。为了让ChatGPT能够将论文内容和我们给出的提示区分开来,在参数中我们设置了stop,用于告诉ChatGPT输入到哪里结束。

输出概述

ChatGPT对输入长度是有限制的,因此我们不能一次性将整个论文内容输入进去,需要一页一页得输入并生成每一页的概述。

pages = pdfplumber.open(file_name).pages
for p in pages:content = p.extract_text() + tldr_tagresponse = openai.Completion.create(prompt=content, **TLDRParameter)print(f"Page1 {index + 1}:\n")print(response["choices"][0]["text"])print("\n\n")

集成测试

将上面的代码集成到一起,我们就可以得到一个完整可用的论文概述工具

import requests
import pdfplumber
import openai
from typing import Optionalopenai.api_key = "YOUR_API_KEY"TLDRParameter = {"model": "text-davinci-003","max_tokens": 2048,"temperature": 0.3,"top_p": 1.0,"frequency_penalty": 0.0,"presence_penalty": 0.0,"stop": ["\n"]
}tldr_tag = "\ntl;dr:"def download_paper(paper_id: str, file_name: Optional[str] = None) -> Optional[str]:""" 根据论文id将论文下载到本地Parameters-----------paper_id: str论文idfile_name: Optional[str]本地文件名,如果为空则用论文id做文件名Returns-------result: Optional[str]论文下载结果。成功则返回本地文件路径,失败则返回None"""paper_url = f"https://arxiv.org/pdf/{paper_id}.pdf"if not file_name:file_name = f"{paper_id}.pdf"res = requests.get(url=paper_url)if res.status_code == 200:with open(file_name, "wb") as f:f.write(res.content)return file_namereturn Noneif __name__ == '__main__':file_name = download_paper('2302.08996')pages = pdfplumber.open(file_name).pagesfor index, page in enumerate(pages):content = page.extract_text() + tldr_tagresponse = openai.Completion.create(prompt=content, **TLDRParameter)print(f"Page {index + 1}:\n")print(response["choices"][0]["text"])print("\n\n")

我用最新发出的2302.08996做测试,输出如下:

Page 1:We employ meta reinforcement learning to model short-duration trading in financial markets as a sequential decision-making problem. We incorporate symbolic features based on frequently occurring patterns in price series to improve the performance of our meta-RL algorithm. Preliminary results on real data indicate that meta-RL and logical features are more effective than vanilla RL or primary price features alone.Page 2:Meta-learning techniques, such as Inductive Logic Programming (ILP) and RL2, can be used to train a trading agent on a new task with limited data.Page 3:We propose a meta-RL agent that can rapidly adapt to new reward patterns. We use PPO to train the agent and an LSTM agent. We also use hand-crafted features and learned logical features to augment the agent's neural network model. Results show that the agent outperforms vanilla reinforcement learning.Page 4:

上面每一页的输出都很好地概括了该页的核心内容,其中第四页为空是因为这一页绝大部分内容是参考文献,ChatGPT也很聪明的没有返回概述。

总结

试用了一天,我认为模型对论文总结得很棒,用这个工具读起论文来效率大增。尽管它永远可能取代实际阅读整篇论文的重要过程,但却可以作为探索发现更广泛有趣科学的工具。

这篇文章更多的是一个概念的证明,如果想大规模用于生产还有很多细节要处理,比如pdf转换的文本的格式,按页转换文本带来得章节错位等问题。然而,我觉得这些问题都可以解决。在ChatGPT的加持下,我认为我们比以往任何时候都更高效地处理更多科学信息。


http://chatgpt.dhexx.cn/article/eZrHZTA9.shtml

相关文章

两会代表热议采用ChatGPT指导论文写作:防范抄袭的探索与思考

人工智能 | AGI | AIGC 深度学习 | API | GPT-4 随着深度学习、高性能计算、数据分析、数据挖掘、LLM、PPO、NLP等技术的快速发展,ChatGPT得到快速发展。ChatGPT之所以引起关注,在于它作为一个大模型,有效结合了大数据、大算力、强算法。 在…

如何用 ChatGPT 写论文?

听说,拥有顶会论文就仿佛自带“流量”。 很多大厂的校招已经明晃晃的说明有顶会等buff加成的同学优先考虑,甚至可以免笔试直接面试! 当然不仅仅是毕业进大厂需要高区论文作为背书,顶会自带流量的加持作用还体现在:本科…

如何用ChatGPT提取论文概要

云智AI助手 2023-05-02 23:16 [请点击上方“云智AI”关注我们 │ 谢谢支持 ] Cloud wisdom, AI assistant 我们在写小论文、学术论文或者毕业大论文时,有没有过这种体验:看着论文题目挺符合,但是通过下载看到论文后,发现与想到或…

论文阅读:Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models

目录 摘要 引言 相关工作 Visual ChatGPT Prompt Managing of Sysytem Principles M(P) Prompt Managing of Foundation Models M(F) Prompt Managing of User Querie M(Qi) Prompt Managing of Foundation Model Out-puts M(F(A(j)i )) 实验 实验设置 摘要 Visual C…

用chatgpt写论文可行吗,查重率会达到多少

AI工具国内体验,关注:码视野,回复关键字:1002 选题 题目:物联网技术在智能家居系统中的应用研究 概要生成 问:请以“物联网技术在智能家居系统中的应用研究”为课题,写一篇物联网专业本科毕业论…

ChatGPT论文考试满绩,高等教育该如何应对人工智能挑战?

近日,ChatGPT引发热议。一方面,ChatGPT表现亮眼,有大学生利用ChatGPT在开卷课堂上取得满绩的优异成绩;另一方面,部分院校、学术期刊却对ChatGPT在高等教育领域的推进保持谨慎态度,甚至有高校明确禁止这项工…

【ChatGPT功能挖掘】论文绘图救星!

前言 💗未来全网粉丝100W、全栈领域优质创作者、掘金、阿里云等社区博客专家、专注于全栈领域和毕业项目实战💗 今天分享一个使用ChatGPT来解决绘图没有思路、不知如何下手的问题! 注意看!全文干货,无废话&#xff01…

ChatGPT相关博客与论文

本人最近收集了一些关于ChatGPT的博客以及论文,每日持续更新中,希望大家多多指正, github地址: https://github.com/wshzd/ChatGPT-Summary/blob/main/README.md ChatGPT相关博客如下: ChatGPT相关论文如下&#xf…

关于 ChatGPT 必看的 10 篇论文

目录 1 Transformer2 GPT-33 InstructGPT4 Sparrow5 RLHF6 TAMER7 PPO8 In-Context Learning8.1 Why Can GPT Learn In-Context8.2 What learning algorithm is in-context learning 9 Prompt参考 团队博客: CSDN AI小组 相关阅读 ChatGPT 简介从 ELMo 到 ChatGPT:…

玩转ChatGPT:论文翻译润色

一、写在前面 首先还是让小Chat推销下自己: 嘿!你是否在写论文的过程中感到头疼,无从下手?你是否在担心自己的语言表达不够专业、不够流畅,影响了论文的质量?不要担心,ChatGPT的润色服务可以帮…

Chatgpt论文笔记——MiNiGPT4解读

前言 代码地址:https://github.com/Vision-CAIR/MiniGPT-4 摘要 摘要写的就很简单了,标黄的是重点,可以看到这个方法很简单,就是拿了一个视觉的encoder(Blip-2)以及拿了一个文本的encoder(Vic…

Visual ChatGPT论文阅读笔记

Visual ChatGPT论文阅读 做笔记的目的介绍论文贡献Visual ChatGPT总体框架总体流程 实验限制总结 做笔记的目的 1、读完了论文,做一下笔记让自己别忘的那么快 2、蹭一波热度(好像有点晚了) 3、这是第一次看纯工程论文,所以做一下…

ChatGPT论文润色

好像确实不会记住内容 参考文献十分不靠谱 链接1进去 链接2进去

chatgpt论文 chatgpt写论文

ChatGPT作品展示: 当代青少年的生活离不开自媒体,自媒体对当代青少年的影响是巨大的。首先,自媒体为当代青少年提供了一个展示自我的平台,让他们可以更好地表达自己的想法和感受,更好地展示自己的才华和能力&#xff0…

使用ChatGPT帮我们写一篇论文,最后查重的重复率会是多少?

使用ChatGPT帮我们写一篇论文,最后查重的重复率会是多少? ChatGpt一经发布就大火,迅速应用在各个领域,尤其在程序圈自动帮我们写代码着实是圈了一大波粉。那么它用在科研领域会出现怎样的效果呢,当我们写论文纠结几个…

如何用ChatGPT辅助写论文

ChatGPT先进功能创造了巨大的需求,该AI工具在推出后的两个月内就积累了超过1亿用户。最突出的功能之一是它能够在几秒钟内编写各种文本,包括歌曲、诗歌、睡前故事和散文。 但是ChatGPT可以做的不仅仅是写一篇文章。更有用的是它如何帮助指导写作过程。今…

【ChatGPT】ChatGPT 原理全解析——读完这10篇论文,你就懂了。

2022年11月,OpenAI推出人工智能聊天原型ChatGPT,再次赚足眼球,为AI界引发了类似AIGC让艺术家失业的大讨论。 ChatGPT 是一种专注于对话生成的语言模型。它能够根据用户的文本输入,产生相应的智能回答。这个回答可以是简短的词语,也可以是长篇大论。其中 GPT 是 Generativ…

建议收藏:超详细ChatGPT(GPT 4.0)论文润色指南+最全提示词/咒语

在这篇文章中,我将分享如何利用ChatGPT 4.0辅助论文写作的技巧,并根据网上的资料和最新的研究补充更多好用的咒语技巧。 本篇文章持续更新,祝大家写作顺利,如果对你有帮助,记得三连! 欢迎大家在评论区补充…

ChatGPT评测

总结:ChatGPT很强大,用作学术方面的问答或者软件行业的辅助工具是有一定的作用,但是有些回答设置了限制,并且中文回答方面总是回答一半,需要一直让他继续说,篇幅不是很长,但是往往能说道精髓&am…

解析ChatGPT背后的工作原理

ChatGPT 是 OpenAI 发布的最新语言模型,比其前身 GPT-3 有显著提升。与许多大型语言模型类似,ChatGPT 能以不同样式、不同目的生成文本,并且在准确度、叙述细节和上下文连贯性上具有更优的表现。它代表了 OpenAI 最新一代的大型语言模型&…