表格信息为什么会丢
表格在解析中最容易退化成乱序文本:行列对齐丢失、单元格被按阅读顺序串成一行、跨页表格被截断。修复手段包括解析阶段启用表格识别(Camelot、docling 等)、把表转成 Markdown 或 CSV 入库、宽表按行组切分。表格的标题与列名必须与数据一起保留,否则检索命中后也无法理解这行数字代表什么。
基本信息
| 解析手段 | Camelot、docling 等表格结构抽取工具 |
|---|---|
| 入库形态 | Markdown 表格、CSV、表头加行的文本记录 |
| 宽表处理 | 按行切分或按列分组,避免整体超长被截断 |
| 必留信息 | 表格标题、列名与单位 |
典型使用场景
- 规格参数表:型号与参数成对入库,支持按型号问答
- 费率与价目表:逐行转文本,客服问答可直接引用
- 对照表与线序表:宽表按行切分,避免后半列不可检索
- 跨页表格:识别续表并合并,防止数据被切断
- 解析质量抽检:用表格类文档实测,确认解析器是否支持表结构
表格转 Markdown
表格转 Markdown
| 模型 | 维度 | 适用 |
| --- | --- | --- |
| bge-m3 | 1024 | 中英多语 |
| e5-large | 1024 | 英文为主 |
# 表头与单位需与正文一起保留,单独存数据行会丢语义
行级切分
行级切分
for row in table_rows:
# 每行拼成「列名: 值」的形式,行内自带字段语义
row_text = " | ".join(f"{h}: {v}" for h, v in zip(headers, row))
chunks.append(row_text) # 附表格标题与页码元数据,便于引用回原文
入库形态选择
| 形态 | 优点 | 代价 |
|---|---|---|
| Markdown 表格 | 行列关系清楚,人读友好 | 宽表容易超过输入上限 |
| 表头加行文本 | 逐行自解释,检索友好 | 跨行统计类问题丢失整体视图 |
| CSV 文件 | 下游可再做加工分析 | 检索侧无法直接匹配语义 |
| 整表截图 | 保留原始版式 | 不可检索,需要另配说明文本 |
保留表格标题与列名:仅存数据行会丢语义,检索命中后既无法理解也无法引用;标题与页码一起写进元数据,引用可以精准回到原表。
解析器要按文档类型分别测试:同一份 PDF 里正文与扫描件并存时,表格识别效果差异很大,抽检时优先挑最复杂的表格做验证。