从 PDF 文档提取数据用于 RAG
企业中有大量 PDF 文档包含有价值的信息。本文介绍如何将 PDF 内容提取并用于 RAG 系统。
文档解析流程
- 读取 PDF 文件
- 提取文本内容
- 分块处理
- 生成 embedding
- 存储到向量数据库
实现代码
import pdfplumber from langchain.text_splitter import RecursiveCharacterTextSplitterdef extract_pdf_text(pdf_path): text = "" with pdfplumber.open(pdf_path) as pdf: for page in pdf.pages: text += page.extract_text() + “\n” return text
def chunk_document(text, chunk_size=500, overlap=50): splitter = RecursiveCharacterTextSplitter( chunk_size=chunk_size, chunk_overlap=overlap ) return splitter.split_text(text)
chunks = chunk_document(extract_pdf_text(“report.pdf”))
注意事项
- 处理扫描件需要先 OCR
- 表格数据需要特殊处理
- 图片中的文字需要视觉模型