下 解放生产力!用Python结合GPT-4进行编程

2.与PDF文件一起工作
虽然这不是一个常见的数据科学应用案例 , 但有时人们不得不从数百个PDF文件中提取文本数据来建立一个情感分析模型 。这些数据是非结构化的 , 需要花费很多时间对其进行提取和预处理 。
偶尔 , 你可能还要与研究人员合作 , 阅读和创作特定行业的时事内容 。需要紧跟新闻 , 分析公司报告 , 并了解该行业的潜在趋势 。
阅读100页的公司报告 , 提取感兴趣的词 , 阅读包含这些关键词的句子 。或者 , 如果对趋势感兴趣 , 可以创建一个自动化的工作流程来展示关键词随时间的增长 , 而不是手动浏览每一份报告 。
在本部分中 , 我们将使用来分析中的PDF文件 。我们将要求聊天机器人提取PDF文件的内容 , 并将其写入一个文本文件中 。
同样 , 这将使用GPT-3.5和GPT-4分别来完成 , 以查看生成的代码是否有明显的区别 。
用GPT-3.5读取PDF文件
在本部分中 , 将分析一份公开发布的PDF文件 , 标题为《工程师机器学习简介》 。如果想继续编写本部分的代码 , 请务必下载该文件 。
首先 , 要求算法生成代码 , 从这个PDF文档中提取数据并保存到一个文本文件中:
以下是该算法提供的完整代码:
import PyPDF2# 以读二进制模式打开PDF文件with open("Intro_to_ML.pdf", "rb") as pdf_file:# 创建一个PDF阅读器对象pdf_reader = PyPDF2.PdfFileReader(pdf_file)# 获取PDF文件的总页数num_pages = pdf_reader.getNumPages()# 创建一个新的文本文件with open("output_file.txt", "w") as txt_file:# 循环浏览PDF文件中的每一页for page_num in range(num_pages):# 从当前页获取文本page_text = pdf_reader.getPage(page_num).extractText()# 把文本写到文本文件中txt_file.write(page_text)
(注意:确保将PDF文件名改为你在运行此代码前保存的文件名) 。
但是 , 在运行GPT-3.5生成的代码后 , 遇到了以下错误:
回到GPT-3.5 , 看看该模型是否能解决这个问题:
把这个错误粘贴到上 , 模型回复说可以通过把使用的编码改为utf-8来解决这个问题 。它还给出了一些修改过的代码 , 反映了这一变化:
import PyPDF2# 以读二进制模式打开PDF文件with open("Intro_to_ML.pdf", "rb") as pdf_file:# 创建一个PDF阅读器对象pdf_reader = PyPDF2.PdfFileReader(pdf_file)# 获取PDF文件的总页数num_pages = pdf_reader.getNumPages()# 创建一个具有utf-8编码的新文本文件with open("output_file.txt", "w", encoding="utf-8") as txt_file:# 循环浏览PDF文件中的每一页for page_num in range(num_pages):# 从当前页面获取文本page_text = pdf_reader.getPage(page_num).extractText()# 把文本写到文本文件中txt_file.write(page_text)
这段代码成功执行并创建了一个名为.txt的文本文件 。PDF文档中的所有内容都被写入该文件:
用GPT-4读取PDF文件
现在 , 把同样的提示粘贴到GPT-4中 , 看看该模型的结果如何:
以下是GPT-4生成的完整代码:
import PyPDF2def pdf_to_text(input_pdf, output_txt):with open(input_pdf, "rb") as pdf_file:pdf_reader = PyPDF2.PdfFileReader(pdf_file)num_pages = pdf_reader.numPagestext = ""for page_num in range(num_pages):page = pdf_reader.getPage(page_num)text += page.extractText()with open(output_txt, "w", encoding="utf-8") as text_file:text_file.write(text)input_pdf = "Intro_to_ML.pdf"output_txt = "output_gpt4.txt"pdf_to_text(input_pdf, output_txt)
【下解放生产力!用Python结合GPT-4进行编程】