首页IT科技python自动生成论文(用Python+ChatGPT批量生成论文概述)

python自动生成论文(用Python+ChatGPT批量生成论文概述)

时间2025-08-01 18:12:21分类IT科技浏览5249
导读:用Python+ChatGPT批量生成论文概述 做算法研究离不开阅读大量论文。从海量论文中找到需要的论文往往耗费算法团队不少的精力。...

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

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

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

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

下载论文

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

从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 论文id file_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_name return 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.PDF pdf文件路径或pdfplumber.PDF实例 page_start: int 要转换的起始页页码 page_end: int 要转换的结束页页码 Returns ------- content: str 转换后的文本 """ content = "" if isinstance(file_name, str): pages = pdfplumber.open(file_name).pages elif isinstance(file_name, pdfplumber.PDF): pages = file_name.pages else: raise AttributeError("需要传入pdf路径或PDF对象") for page in pages[page_start:page_end]: content += page.extract_text() return content

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

用GPT-3生成概述

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

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

import openai openai.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_tag response = 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 Optional openai.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 论文id file_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_name return None if __name__ == __main__: file_name = download_paper(2302.08996) pages = pdfplumber.open(file_name).pages for index, page in enumerate(pages): content = page.extract_text() + tldr_tag response = 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 agents neural network model. Results show that the agent outperforms vanilla reinforcement learning. Page 4:

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

总结

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

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

声明:本站所有文章        ,如无特殊说明或标注        ,均为本站原创发布。任何个人或组织                       ,在未征得本站同意时                ,禁止复制               、盗用                       、采集        、发布本站内容到任何网站        、书籍等各类媒体平台                       。如若本站内容侵犯了原著者的合法权益        ,可联系我们进行处理                        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
ChatGPT翻译软件(ChatGPT平替版本推荐以及试用体验) 服务器性能测试的性能指标(服务器性能指标有哪些?怎么衡量好坏?)