让AI帮你工作(2)-如何阅读pdf论文

news2024/11/18 19:39:15

这个系列快结束了,后面会有一到两篇文章介绍,如何用AI实实在在的应用在工业生产研发,如何指导化工分子合成,如何做DNA的研究预测,合成。

背景

最近chatpdf在各媒体传的风风火火,从效果上是很震撼的。原因大概分析有三:

1.pdf在大家印象中是一种保存性文档,很不容易做二次数据处理

2.可以对pdf中内容做问答,还可以顺带做翻译,做长文章的摘要观点生成

3.可以找到某个观点出现在哪

但其实如果是做nlp的同学又稍微熟悉办公自动化的同学,应该知道上面几点都不难。

1.pdf其实是可以想word一样的方便操作的。

2.文章摘要有难度,但是chatgpt对知识整理能力是可以的,调api就好

3.把自动化能力+chatgpt做个整合就可以实现

复现

python如何读取pdf

用python读取并处理pdf文件,把文件保存成csv,按文本内容、行、页数。用PyPDF2抽取pdf数据,把每行内容、页数、行数用pandas存成cvs,具体操作如下,结果如右。

代码如下:

import PyPDF2
import pandas as pd

# 打开PDF文件
with open('大模型综述-李飞飞等.pdf', 'rb') as pdf_file:
    # 创建PdfFileReader对象
    pdf_reader = PyPDF2.PdfReader(pdf_file)

    # 获取PDF文件的总页数
    num_pages = len(pdf_reader.pages)

    # 创建空列表存储数据
    data = []

    # 循环遍历每一页PDF文件
    for page in range(num_pages):
        # 获取页面对象
        pdf_page = pdf_reader.pages[page]  #pdf_reader.getPage(page)

        # 提取页面文本内容
        text = pdf_page.extract_text()

        # 分割文本内容为行
        lines = text.split('\n')
        #data.append([line, page+1] + columns)

        # 循环遍历每一行文本
        i = 0
        for line in lines:
            i = i+1
            # 分割行为列
            #columns = line.split(',')

            # 添加行、页码和列到数据列表中
            data.append([line, page+1, i])

# 将数据列表转换为Pandas DataFrame对象
df = pd.DataFrame(data, columns=['text', 'page'] + [f'col_{i}' for i in range(len(data[0])-2)])

# 将DataFrame对象保存为CSV文件
df.to_csv('example.csv', index=False)

pdf信息如何送给chatgpt

如何抽取摘要

将论文输入到ChatGPT中,让模型生成摘要。可以使用以下代码将论文输入到ChatGPT中,并让模型生成摘要:

#每次prompt有限制,可以分批输入,要抽取的好,有些拼接技巧,各位看官自己动动脑动动手试试
import openai
openai.api_key = "你的apitoken"
openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Please generate a summary of the given article: {}\n\n ARTICLE TEXT HERE".format(' '.join(df['text'][0:200]))}
    ]
)

效果如下:

如何提问找到原文

代码如下:

import openai
openai.api_key = "你的api token"
openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Please analyze the given article {article} and list the key {key} topics discussed: \n\n ARTICLE TEXT HERE".format(article =' '.join(df['text'][0:200]),key = 'where ia content?')
        }
    ]
)

效果如下:

行号和页数,因为我没把前面处理好存在csv里的数据带上,所以没显示,这个各位看官可以自己动试试效果,不难。

如何翻译
import openai
openai.api_key = "你的api token"
openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "把输入的英文{article} 翻译成中文 : \n\n ARTICLE TEXT HERE".format(article =' '.join(df['text'][0:20]))
        }
    ]
)

结果如下:

utf-8转成中文

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

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

相关文章

Linux内核Thermal框架详解一、总述

本文部分内容参考万字长文 | Thermal框架源码剖析,特此致谢! Linux Thermal Framework是Linux系统下温度控制相关的一套架构,主要用来解决随着设备性能不断增强而引起的日益严重的发热问题,控制系统运行过程中各个器件所产生的热量…

【web前端开发】CSS最常用的11种选择器

文章目录1.CSS介绍2.CSS的语言规则3.CSS的引入方式4.选择器标签选择器类选择器id选择器通配符选择器复合选择器后代选择器子代选择器并集选择器交集选择器伪类选择器hover伪类选择器active伪类选择器结构伪类选择器结语1.CSS介绍 CSS (Cascading Style Sheets,层叠样…

分布式架构-流量治理-服务容错

系列目录 分布式架构-流量治理-服务容错 分布式架构-流量治理-流量控制 引子 容错性设计(Design for Failure)是微服务的一个核心原则。随着拆分出的服务越来越多,随之而来会面临以下两个问题的困扰: 由于某一个服务的崩溃,导致所有用到这个服…

MyBatis的基本使用

MyBatis 为啥MyBatis会使用xml 在一个程序中,若需要操作数据表,那么 SQL 语句有两种存放方式:1. 放到 Java 类里面(这个就存在大量的字符串拼接,还有占位符需要处理-----JDBC);2:放…

TypeScript深度剖析: TypeScript 装饰器的理解?应用场景?

面试官:说说你对 TypeScript 装饰器的理解?应用场景? 一、是什么 装饰器是一种特殊类型的声明,它能够被附加到类声明,方法, 访问符,属性或参数上 是一种在不改变原类和使用继承的情况下&#…

程序员中的女性力量——做不被定义的自己

她是office lady,亦是程序媛,程序员界的靓丽色彩,不可或缺。 “只有那些疯狂到以为自己能够改变世界的人——才能真正改变世界。” 女性该如何定义自己?程序媛怎么发挥自己最大的价值。 争取自己做选择,经济和思想都独…

Spring基础与创建

目录 前言 Spring基础与核心概念 Spring是什么 1、什么是容器 2、什么是IoC 3、理解SpringIoC 4、DI(依赖注入) Spring的创建和使用 1、创建Spring项目 1.1、创建一个普通Maven项目 1.2、添加Spring框架支持 1.3、添加启动类和main方法 2、…

【c++】:STL模板中string的使用

文章目录 STL简介一.认识string二.string中基本功能的使用总结STL简介 STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。STL的版本 原始版本 Alexand…

15_MySQL存储过程与存储函数

MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调用存储过程和函数即可。1. 存储过程概述1.1 理解含义:存储过程的英文是 Stored Pro…

JDK8新特性宝典

JDK8新特性 ​ Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台 课程内容的介绍 了解Java发展史Lambda表达式…

[深入理解SSD系列 闪存2.1.5] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现

前言 上面是我使用的NAND FLASH的硬件原理图,面对这些引脚,很难明白他们是什么含义, 下面先来个热身: 问1. 原理图上NAND FLASH只有数据线,怎么传输地址? 答1.在DATA0~DATA7上既传输数据,又传输地址 当ALE为高电平时传输的是地址, 问2. 从NAND FLASH芯片手册可知,要…

Apache DolphinScheduler GitHub Star 突破 10000!

点击蓝字 关注我们今天,Apache DolphinScheduler GitHub Star 突破 10000,项目迎来一个重要里程碑。这表明 Apache DolphinScheduler 已经在全球的开发者和用户中获得了广泛的认可和使用。DolphinScheduler 旨在解决公司日常运营中的大数据处理工作流调度…

Redis之持久化操作

目录 一、简介 二、RDB 1、自动触发 2、手动触发 3、RDB 的优点和缺点 三、AOF 1、AOF的工作流程 2、AOF的配置 3、AOF的优点和缺点 4、俩种持久化的方式如何选择? 一、简介 1、什么是持久化? 持久化是指将内存中的数据同步到磁盘中&#xf…

策略模式详解

文章目录策略模式(行为模式)1. 策略模式介绍2. 好处3. 场景案例4. 案例源码1. 代码结构2. 榜单服务接收消息入口3. 基础任务类4. 定义策略模式转发的规范5. 代理的第一层6. 代理的第二层抽象父类:定义视频聊榜单代理规范7. 代理的第二层实现子…

elasticsearch自定义企业词典

我们中文分词用的是ik,但是ik只是对基本的中文词进行了分词,而对于企业或者人名没有进行分词。比如,我搜索中国平安,那么ik只能分成中国、平安如果这样,这肯定是不行滴!接下来,俺就教你&#xf…

历史上被发现的第一个真正的Bug - Grace Hopper

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…

【bug】antd全局的主题色样式被覆盖,被修改为`antd`默认的主题色

背景: 项目本身修改了主题色,配置如下: // umi配置文件 export default {theme: {primary-color: #2F54EB, // 全局主色}, };需要对图片上传组件做封装,并在项目中统一引用,如下 import { TdsUpload } from tdsComponents;环境信息 node tiandstiandsdeMacBook…

【JavaEE】前后端分离实现博客系统(页面构建)

文章目录1 效果展示1.1 博客登录页面1.2 博客列表页面1.3 博客详情页面1.4 博客编辑页面2 页面具体实现2.1 博客列表页的实现2.2 博客详情页的实现2.3 博客登录页面的实现2.4 博客编辑页面的实现写在最后1 效果展示 1.1 博客登录页面 用于实现用户的登录功能,并展…

2023年3月西安/杭州/深圳/东莞NPDP产品经理认证考试报名

产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年…

什么是量子计算?

什么是量子计算? 量子计算机仍处于起步阶段,正在影响已经在经典计算机上运行的新一代模拟,现在使用 NVIDIA cuQuantum SDK 进行加速。 在史蒂夫乔布斯 (Steve Jobs) 推出可以放入口袋的计算机之前 27 年,物理学家保罗贝尼奥夫 (P…