RAG中pdf解析的方法全览

RAG中解析PDF的方法

一 pdf格式都有哪些

1.机器生成的pdf文件,包含图像,文本,可以被编辑

2.传统扫描文档,表现为图像,不能被编辑

3.带OCR的扫描文档。可能转OCR的过程中带入了错误。

二 pdf解析全科指南
复制代码
全面指南---------用python提取PDF中各类文本内容的方法 https://www.luxiangdong.com/2023/10/05/extract/
复制代码
https://mp.weixin.qq.com/s/SjdoTv1htO6Ti98g3qgBjQ

1.pdfplumber

复制代码
https://blog.csdn.net/fuhanghang/article/details/122579548
pdfplumber的主要类和方法
pdfplumber对于表格的提取
复制代码
参考https://github.com/jsvine/pdfplumber/blob/stable/examples/notebooks/extract-table-ca-warn-report.ipynb

代码:
pdf = pdfplumber.open("../pdfs/ca-warn-report.pdf")
p0=pdf.pages[0]
im = p0.to_image()  #display 第一页
table = p0.extract_table() 抽取其中最大的表格

import pandas as pd
df = pd.DataFrame(table[1:], columns=table[0])
for column in ["Effective", "Received"]:
    df[column] = df[column].str.replace(" ", "")  使用panda来吧table抽取到的数据转成dataFrame格式

2.layout parser

layoutparser 是一个基于深度学习的文档图像分析工具包,它提供了布局检测、OCR识别、布局分析等接口,适用于处理和分析扫描文档或图像中的文字。

复制代码
https://zhuanlan.zhihu.com/p/391138225

首先,将pdf的每一页转为图像,以便对其执行OCR来提取文本块。

复制代码
pip install pdf2image
images = convert_from_bytes(open('FILE PATH', 'rb').read())  #将pdf的每一页转为图像并保存在内存中
image = np.array(image) #将图像转为像素值数据

解析pdf论文的话,使用特定模型

复制代码
参考 https://zhuanlan.zhihu.com/p/602615194

LayoutParser为常见的OCR工具提供了统一的接口,示例代码如下:

text 复制代码
ocr_agent = lp.TesseractAgent()  layourparser要与Tesseract 这个包相结合

使用代码如下

复制代码
import layoutparser as lp
image = cv2. imread (" image_file ") # load images
model = lp. Detectron2LayoutModel ("lp :// PubLayNet / faster_rcnn_R_50_FPN_3x / config ")
layout = model . detect ( image )

3.paddlepaddle的工具

https://github.com/PaddlePaddle/PaddleOCR/tree/release/2.7/ppstructure

该代码从pdf中结构出各个标题层级的关系,又在word中重建该结构。

4.其他解析pdf获得子标题的方法

复制代码
1.先ocr,再版面解析
https://www.textin.com/experience/pdf-to-word
2.用fitz提取,再写正则规则匹配
3.参考论文 
https://arxiv.org/pdf/2308.14978.pdf
4.google的document ai
5.参考如下项目
https://github.com/OKC13/General-Documents-Layout-parser
6.使用如下接口 
https://apifox.com/apidoc/shared-a55f1a3d-4871-41b7-8f1a-3af83807410b/api-120356017
相关推荐
sevenez14 分钟前
火山引擎 AI 云原生架构笔记:方舟、AgentKit、HiAgent 三层关系梳理
人工智能·语言模型
ai小陈10 小时前
CUDA Stream实战:让数据传输与GPU计算真正重叠
人工智能·深度学习·ai·pdf·云计算·gpu算力
蓝速科技14 小时前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
user_admin_god18 小时前
第 01 篇:OpenAI 兼容 API 初探 —— 用 curl 跑通第一次对话
java·人工智能·spring boot·语言模型·devops
johnsong19 小时前
GPT-6 Astra 的能力数字与对齐声明:哪些能信
人工智能·语言模型
智码看视界19 小时前
Day72-文档预处理实战:PDF解析 + 文本切块的正确姿势
pdf·pdfbox·预处理·rag·文档解析·tika·文本切块
Allen_LVyingbo21 小时前
医疗人工智能项目全生命周期管理系统:监管知识建模、工程实现与实证评估(下)
大数据·数据库·人工智能·python·自然语言处理·自动化
譕痕21 小时前
Idea 集成 智能体开发工具“千问(qwen)”
java·ide·spring·语言模型
user_admin_god1 天前
第 09 篇:实践一 —— 文本摘要(Map-Reduce 分块)
java·人工智能·spring boot·语言模型
Behaviour1 天前
豆包手机助手消费者版发布:首款量产 AI 智能体手机 9 月 16 日开售
人工智能·语言模型·aigc·ai编程