把一份上百页的资料交给文心一言或通义千问处理时,真正进入模型之前还有一段看不见的路,长文本的预处理就发生在输入侧的这一段。这段路走得稳不稳,直接决定回答的质量。
可以把它想成后厨处理整条鱼:先去鳞、去内脏、切段、腌好,下锅前每一步都在为后续省事。这个类比的失效之处在于,鱼只按部位切,文本切块要按语义结构切,一段话拆在哪里看的是意思而不是位置。带走一个判断:预处理不是复制粘贴前的整理,而是决定模型「读到什么」的关键环节。
预处理的流水线:进入模型前的四道工序
工序一是清洗:去掉乱码、重复行和无效符号,让内容干净可读。
工序二是切块:把长文按结构切成段;工序三是标注:给每块打上位置和类型信息;工序四是编码:把文字转成模型能吃的向量与编号。四道工序依次接力,任何一道偷懒,后患都会在生成端显现。顺序也不宜打乱:没清洗就切块,乱码会污染块边界;没标注就编码,引用时说不清出处。每一步的产物都是下一步的原料,判断一份资料是否被好好处理,看它回答时能否说清「出自哪一段」就有数了。编码之后的理解环节还可能受思考预算的约束,衔接见思考预算是怎么在推理时执行的?。
四道工序各自做什么、交出什么,排开看是这样。
| 工序 | 具体做什么 | 交出什么 |
|---|---|---|
| 清洗 | 去掉乱码、重复行和无效符号 | 干净可读的内容 |
| 切块 | 把长文按结构切成段 | 按结构切出的文本段,块与块之间留少量重叠 |
| 标注 | 给每块打上位置和类型信息 | 标明来自哪一页、哪一节、属于正文还是表格 |
| 编码 | 把文字转成模型能吃的向量与编号 | 可进模型的输入,之后的理解环节还受思考预算约束 |
切块的依据:不按字数按结构
直接按固定字数切,最容易把一句话拦腰斩断。靠谱的切块会优先找自然边界:标题、段落、列表项,其次才是句号和分号,实在超长再按语义近似度细分。块与块之间常留少量重叠,防止关键信息恰好落在切缝里被丢掉。中文切块还要留意标点的全半角差异,半角句号常意味着代码或公式,处理规则应当区别对待,否则一段代码会被切成一堆碎句,注释和字符串也难幸免。切块的粒度直接影响引用的精准度,关联机制见上下文里的引用标记是怎么加的?来源标注。
标注都标了什么
标注是给每块内容挂上元信息:来自哪一页、哪一节、属于正文还是表格,必要时还有语言和时间。这些标注不参与语义计算,却决定了模型引用时能不能说清「出自哪里」,也决定了下游过滤环节的处置精度:带标注的内容块更容易被规则引擎精准处理,规则见输出过滤的规则引擎是怎么工作的?;输入侧的内容拦截同样发生在这条流水线上,见敏感词拦截在哪个环节?从原理到落地。标注规范各家不同,秘塔AI搜索在资料来源呈现上的做法是一个可参考的样本。
预处理做不好,回答会怎么变形
三个典型信号:引用张冠李戴,多半是切块切散了上下文;回答漏掉长文后半部分的内容,常见于没有分块、只取了开头;表格数字对不上,往往是没有标注表格类型。遇到这些情况,先检查资料本身的结构,比反复重问有效得多。多租户场景下,资料也是按租户分开存放与处理的,边界见多租户的隔离是怎么做的?互不干扰。
长文预处理自查:
- 切块是否保留了标题和段落边界
- 相邻块之间是否留了重叠
- 每块是否带着页码或章节等定位信息
三处都到位,长资料的回答才有据可查。
关于长文本的预处理,问得最多的三个
- 预处理会改动原文吗?:清洗只删无效符号,正文内容不会被改写,切块和标注也不动原文一字。
- 块切得越小越好吗?:不是。块太小上下文断裂,块太大检索不准,按结构切最稳。
- 图片里的文字会处理吗?:取决于服务的多模态能力,纯文本管线通常只处理可直接读取的文字层。
预处理是回答质量的地基,地基稳了,上层生成才有得发挥。


