想让大模型替你把一堆文本分好类,先别急着写「请分类」。分类任务能不能跑稳,取决于 AI 拿到的标签体系长什么样。文心一言也好,讯飞星火也好,模型本身不缺分类能力,缺的是一套边界清晰的标签。
标签体系先定边界再定名字
定标签的顺序有讲究:先定边界,再定名字。先把数据里实际会出现的话题范围摸清楚,划出彼此不重叠的区域,最后才给每个区域起名字。顺序反了就会出事——名字起得漂亮,边界却含糊,「售后咨询」和「使用问题」这种标签放在一起,模型只能靠猜。判断标签好坏有个土办法:随手找一条真实文本,问自己它属于且只属于哪个标签,答不出来就该改体系。
一套能用的标签体系,五个环节各自要落到什么程度。
| 环节 | 落地写法 | 漏写的后果 |
|---|---|---|
| 划边界 | 先摸清数据里实际会出现的话题范围,划出彼此不重叠的区域 | 名字起得漂亮边界却含糊,「售后咨询」和「使用问题」放一起,模型只能靠猜 |
| 起名字 | 边界定完,最后才给每个区域起名字 | 顺序反了,标签之间边界重叠,一条文本归属说不清 |
| 写描述 | 每个标签跟一句覆盖说明,如「物流问题:指配送速度、快递状态、包裹丢失,不含商品质量本身」 | 「快递三天没到」和「收到的商品是坏的」两条之间,模型来回摇摆 |
| 设兜底 | 设「其他」,只在都与现有标签对不上时用,用时给一句理由 | 装不下的文本无处可去;兜底频繁命中说明体系漏了一块 |
| 限多标签 | 写明可输出多个标签,按相关度排序,最多不超过三个 | 有的模型只挑一个最像的,有的把沾边的全塞进来 |
标签描述比标签名字更管用
光有标签名不够,每个标签后面要跟一句描述,写清楚它覆盖什么、不覆盖什么。比如「物流问题:指配送速度、快递状态、包裹丢失,不含商品质量本身」。有了这句话,模型在「快递三天没到」和「收到的商品是坏的」两条之间就不会摇摆。标签描述实际承担了分类规则的职责,描述越具体,模型越不需要凭感觉办事。
兜底标签与多标签的处理写法
现实数据总有标签装不下的东西,所以要设一个兜底标签,比如「其他」,并明确告诉模型:与现有标签都对不上时才允许用它,用的时候顺手给一句理由。多标签场景则要写明「可输出多个标签,按相关度排序,最多不超过三个」。不写这句话,有的模型会只挑一个最像的,有的会把沾边的全塞进来,输出不可控。兜底标签被频繁命中时,别急着怪模型,多半是体系本身漏了一块,补一个新标签往往比改提示更有效。
输出格式怎么锁死才好统计
分类结果通常是给程序消费的,格式必须锁死。省事的写法是要求只输出标签本身,不加解释、不加标点、不加「分类结果是」这类前缀;需要理由时,规定成固定结构,例如「标签:理由」两段式。用豆包跑一小批测试文本,把输出逐条粘进表格看格式是否统一,比在对话框里目测靠谱得多。格式乱了,下游统计就全乱,返工成本反而更高。需要多级分类时,先输出一级标签再输出二级标签,逐级给清单,比一次给一长串混合标签可靠得多。约束写完后自己先想象一遍输出长什么样,想象不出来的约束,模型同样执行不了。
标签体系写好后,还可以和其他任务的提示互相借力。摘要任务同样强调输出约束,见摘要任务的长度控制;改写任务对「什么不能动」的处理方式值得借鉴,见改写任务的保义换形;分类之后往往要接字段提取,可参考信息抽取的结构设计;如果是客服留言分类,客服场景的边界提示讲了怎么守住回答范围。
分类提示自查清单
- 标签之间是否互斥,拿不准的文本有没有归属?
- 每个标签有没有一句覆盖说明,写了「不含什么」吗?
- 兜底标签设了吗,命中率高不高?
- 输出格式锁死了吗,程序能直接读吗?
四问都过,再上真实数据,别拿体系半成品跑全量。
标签体系是分类提示的地基。花在划边界上的那点时间,最后都会从结果里省回来。
关于标签体系的三个常问问题
- 标签数量多少合适?:单层标签控制在十个上下比较好操作,再多的场景优先考虑拆成两级,而不是继续平铺。
- 模型输出标签之外的词怎么办?:在提示里写明只允许从给定列表中选择,并在示例里展示一次越界后被纠正的样子。
- 标签描述要写多长?:一到两句足够,关键是写出「不含什么」,排除项比包含项更能压住模糊地带。


