大模型理解复杂表格中的跨行(row spanning)跨列(column spanning)(即合并单元格)一直是难点,因为LLM本质上是处理一维序列的模型,而合并单元格会破坏规则的行列网格结构,导致模型容易误解单元格的归属和范围。

下面详细解释大模型在处理这类结构时的机制、常见问题,以及当前主流的解决方案。

1. 合并单元格带来的核心挑战

  • 结构歧义:一个合并单元格同时属于多个行/列,但序列化后它只出现一次,模型需要“记住”这个值要填充到哪些位置。
  • 注意力混乱:LLM的注意力机制可能无法正确推断合并单元格的覆盖范围,尤其在表格较大时。
  • 常见错误:模型会把合并单元格的值只归属到它实际出现的那个位置,导致跨行/列的语义丢失。例如,把一个跨两列的标题只理解成左边一列的。

2. 大模型当前主要的理解方式(按输入格式分类)

(1) HTML格式(最推荐,能部分保留合并信息)

HTML是目前处理合并单元格效果最好的序列化方式,因为它显式标注了rowspan和colspan。

示例:

HTML

1
2
3
4
5
6
7
8
9
10
11
12
<table>
<tr>
<th rowspan="2">年份</th> <!-- 跨2行 -->
<th colspan="2">销量</th> <!-- 跨2列 -->
</tr>
<tr>
<th>国内</th>
<th>国外</th>
</tr>
<tr><td>2024</td><td>100</td><td>200</td></tr>
<tr><td>2025</td><td>150</td><td>250</td></tr>
</table>

大模型如何理解

  • 在预训练阶段见过海量HTML网页,学会了rowspan/colspan的含义。
  • 当前顶级模型(如GPT-4o、Claude 3.5、Gemini 1.5、Qwen2-VL)在看到rowspan=”2”时,大概率能正确推断该单元格的值适用于下面2行。
  • 实验证据:2024年的TableLlama和Binder基准测试显示,使用完整HTML输入时,合并单元格理解准确率可达80-90%,远高于其他格式。

局限:仍不完美,尤其是合并层级深、跨度大时,模型偶尔会“遗忘”或误填。

(2) Markdown表格(几乎无法表达合并)

普通Markdown表格完全不支持rowspan/colspan,只能用重复值近似模拟(如把“年份”在每行都写一遍)。

结果:模型完全无法感知真正的合并结构,理解效果最差。

(3) 显式坐标 + 范围标注 + 解读(人工增强,最可靠)

为了强制模型正确理解,常在输入中添加显式说明:

示例增强版:

text

1
2
3
4
5
6
表格结构(5行4列):
- 单元格(1,1): "年份", rowspan=2, colspan=1
- 单元格(1,2): "销量", rowspan=1, colspan=2
- 单元格(2,2): "国内"
- 单元格(2,3): "国外"
...

或者用线性化+范围描述:

text

1
2
3
合并单元格说明:
- "年份" 位于第1行第1列,垂直跨2行
- "销量" 位于第1行第2列,水平跨2列

这种方式几乎100%让模型正确理解,但需要额外预处理步骤。

(4) 多模态模型直接“看”图像/PDF表格

对于从图片或PDF提取的复杂表格:

  • 使用LayoutLMv3、Donut、Table Transformer、TabPedia、Qwen2-VL、GPT-4o等视觉模型先检测合并单元格结构,输出带rowspan/colspan的HTML或JSON。
  • 再把结构化结果喂给LLM理解。
  • 优势:视觉模型专门训练检测合并边界,准确率高(当前SOTA >95%)。
  • 代表工具:Unitable、TableMaster、GPT-4o的PDF理解。

3. 高级框架如何更好处理合并单元格

  • Chain-of-Table:在每一步操作前,先让模型“规范化”表格(把合并单元格填充成重复值),生成一个无合并的规则网格,再进行后续推理。彻底避免合并歧义。
  • Binder / ReAcTable:使用外部程序(如Pandas)先解析HTML,填充合并值后生成规则表格,再喂给LLM。
  • Table-Tuning模型:在微调阶段加入大量带合并单元格的指令数据,模型学会自动“脑补”填充。

总结对比:各种方式处理跨行跨列的效果

输入方式 合并单元格理解准确率 自动化程度 推荐场景
完整HTML(带rowspan/colspan) 高(80-90%) 首选,网页/Excel导出HTML时
显式坐标+范围描述 极高(接近100%) 中(需预处理) 关键任务、准确率要求极高
多模态视觉模型先解析 很高(90%+) PDF、图片、扫描件表格
普通Markdown 低(<50%) 不推荐复杂表格
填充重复值后规则表格 高(90%+) Chain-of-Table等框架使用

结论: 当前大模型理解复杂跨行跨列的最佳方式是优先使用带rowspan/colspan的HTML输入,或者用视觉模型/外部工具先解析并填充合并值。单纯靠模型自己“猜”仍不稳定,但结合上述方法,已能在大多数实际场景中可靠处理复杂合并表格。

如果你有具体的复杂表格例子(尤其是带合并的),可以贴出来,我可以演示不同输入格式下模型会如何理解!