首页/AI/RAG 与向量库速查/Camelot 提取 PDF 表格

Camelot 提取 PDF 表格

Camelot 专注 PDF 表格提取:lattice 模式针对带线框表格,stream 模式针对无线框表格,可批量导出 CSV/Excel/JSON,适合结构化表格入库。

RAG 与向量库速查AI更新于 2026-10-13

表格专用抽取工具

这类工具专注 PDF 表格提取:有线框模式先检测线条再切分单元格,适合规整的报表;无线框模式按空白与文本分布推断列位置,适合排版宽松的文档。抽取结果可直接导出成表格文件,适合把成册报表转成结构化数据再入知识库。

基本信息

有线框模式先检测线条再切分单元格
无线框模式按空白与文本分布推断列
系统依赖需要安装 Ghostscript
输出可直接导出 CSV、Excel 或 JSON
适用报表、财务与统计类 PDF

提取与导出

提取与导出
import camelot

tables = camelot.read_pdf("report.pdf", pages="1-5", flavor="lattice")
print(len(tables), tables[0].shape)
print(tables[0].df.head())
tables.export("out.csv", f="csv")

使用要点

  • 先按页抽查两种模式的结果,再决定整册用哪一种
  • 记录每页使用的模式,便于异常页复查
  • 抽取后核对行列数,缺列通常比缺行更隐蔽
  • 跨页表格要按表头对齐后再拼接,否则数据行会错位
  • 导出文本时保留表头,入库后检索才能理解每列含义

两种模式对照

模式依据典型适用
有线框检测线条与交点带网格线的报表
无线框空白间隔与文本位置排版宽松、无竖线的表格
混合文档按页切换模式同一文档里两种表格并存

常见问题

  • 结果为空:多半是该页没有可检测的线条或文本密度过低
  • 列数异常:表头存在合并单元格时列切分容易错位
  • 数值错位:数字与单位被分到不同列,需要在后处理里合并
  • 跨页断裂:表头只在第一页出现,后续页需要补表头
  • 依赖缺失:容器环境未装 Ghostscript 时直接报错
同一文档不同页可能混用有线与无线表格,建议两种模式都跑并对比,按页选择而不是整册一刀切。

结果质量怎么判断

表格抽取的质量不高体现在细节上:列数比预期少一列、数字与单位被拆到相邻列、合并单元格导致的空值、以及跨页后表头缺失。判断方法是抽三到五页人工逐格核对,把错误按类型归类;若错列集中出现在带合并表头的表格上,说明需要针对这类模板单独调参,而不是换工具。

入库前的处理

  • 补齐空值并标注推断来源,避免后续统计把空值当零
  • 把表头与数据行分开存储,检索时用表头解释每个数值的含义
  • 为表格切片生成一句话描述,纯表格文本的语义向量质量通常较差
  • 保留原始页码与表格序号,回答引用时能指明是第几张表

易错点

  • 模式选错时结果差异很大:有线框表用无线框模式或反之都容易错列
  • 依赖 Ghostscript,容器与服务器上要先装系统依赖
  • 整册只用一种模式,混排文档的表格被大面积切错
  • 表格数据直接入库而不做行列校验,错位数据会被检索命中并进入答案

数据来源与参考

  • Camelot 官方文档(camelot-py.readthedocs.io)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌