表格切片怎么处理
表格是最容易被切分破坏的结构:表头与数据行一旦分离,单看数据行根本无法解读——不知道那一列是功率还是尺寸,也不知道单位。通行做法有两条:小表整体转成 Markdown 作为一个切片,保证表头与全部行在一起;超大表按行分组切片,但每一块都要复制表头,并在元数据里写入表名。表格切片还应在文本里保留表名与用途说明,这样检索“某型号的并发上限”时能命中正确的表。
基本信息
| 首选做法 | 整表转 Markdown,作为一个或少数几个切片 |
|---|---|
| 大表策略 | 按行分组,每组复制一份表头 |
| 元数据 | 写入表名、所在章节、页码 |
| 文本补充 | 切片中保留表名与表格用途的一句话说明 |
| 风险 | 表头与数据分离、宽表单行过长超限 |
典型使用场景
- 参数对照表:用户按型号查规格,必须整表可读
- 价格与配置表:行列交叉关系强,拆开就失去意义
- 合规条款附表:每个条件对应若干取值,需成组出现
- 跨页表格:解析后合并同一张表的多个分页片段
- 检索增强说明:给表格补一句“本表列出各型号并发上限”,提升语义召回
表格转 Markdown
表格转 Markdown
def table_to_markdown(head, rows):
lines = ['| ' + ' | '.join(head) + ' |',
'|' + '---|' * len(head)]
lines += ['| ' + ' | '.join(str(c) for c in row) + ' |' for row in rows]
return '\n'.join(lines)
print(table_to_markdown(['型号', '并发上限'], [['X1', '10'], ['X2', '20']]))大表按行分组复制表头
大表按行分组复制表头
def group_rows(head, rows, per=20):
for i in range(0, len(rows), per):
yield table_to_markdown(head, rows[i:i + per]) # 每组自带表头
# 每组切片再补一句用途说明与页码,命中后引用才完整表格形态与切法
| 表格形态 | 切法 | 注意点 |
|---|---|---|
| 小表(<20 行) | 整表一块 | 保留表名与单位说明 |
| 大表(数十行以上) | 按行分组 + 复制表头 | 组间不要重叠,避免重复命中 |
| 跨页表 | 合并后再切 | 页眉行要先去掉 |
| 超宽表 | 拆列或转纵向列表 | 单行过长会触发长度截断 |
表格切片的元数据要写清表名与章节,检索命中后用户才能判断这张表是否适用于自己的场景;只有数字没有语境的分片几乎无法被人核对。