零样本分类:用你定义的类别给文本打标签

用一句话写清每个标签的含义,贴上一段文本,Jev 会返回每个标签的概率和一个置信度。不需要训练数据,不需要微调,也没有要解析的提示词输出。下面用一条新闻片段直接试用,不用注册。

用你自己的文本试试

修改示例后运行。无需账号,每天免费 3 次。

场景

按你定义的主题给文本归类,无需训练数据。

177 / 2,000

可以随意修改,Jev 会针对这里的内容回答该场景的问题。

模型

这个工具检查什么

示例看起来像一个边界情况:它讲的是一家公司的股价和营收预期,属于商业;但这家公司做的是处理器,可能被拉向科技。由于商业被定义为"公司、市场、财报与经济",Jev 会明确把它归入商业。你可以把文本改写成讲处理器本身,看看概率分布怎么变化。一次评估问三个问题:

问题类型返回什么
topicChoiceworld、sports、business、sci_tech 各自的概率和置信度
opinionNoul这段文本是评论而不是新闻报道的概率,0 到 1
negative_newsNoul它报道的是所涉机构遭遇挫折的概率

这四个主题正是 AG News 的标签集,AG News 是常用的主题分类基准,所以你可以把这里看到的结果和下面公开的数字对照。这些标签没有经过任何训练,定义每个标签的只有它旁边那一行文字。改掉那行文字,分类器也就跟着改了。

这里的零样本分类是怎么做的

大多数零样本分类器会把任务改写成模型本来就会做的事。经典做法是 Hugging Face 的 zero-shot-classification pipeline:把每个标签变成一个假设句(默认是 This example is {}.),再用自然语言推理(NLI)模型打分。另一条常见路线是提示通用大模型"只用这些标签之一回答"。

Jev 直接接收标签。一个 Choice 问题就是一组带说明的选项,返回的是每个选项的概率,而不是一段还要和标签名去匹配的文字。实际用起来有两个影响:

  • 它不会答出你的标签以外的东西。 不会临时造出一个"商业/科技",也没有会出错的解析步骤。
  • 你拿到的是分布,而不只是一个赢家。 商业 0.55、科技 0.40 的文本,和商业 0.97 的文本,应该做不同的决定。置信度把这个分布形状压缩成一个可以设阈值的数字。

和其他零样本分类器相比

我们知道的唯一独立测量是 jev-benchmarks,一项预先登记的试验:在三个数据集上各取 100 条留出样本,比较 jev-1.13.0 和 GLiNER(fastino/gliner2.5-multi-v1):

数据集标签数Jev 准确率GLiNER 准确率Jev 覆盖率(错误率 ≤5%)GLiNER 覆盖率
AG News40.9100.7000.8300.240
Banking77720.8700.6100.8600.270
DAIR Emotion60.4800.4400.0000.020

覆盖率是在错误率不超过 5% 的前提下可以自动处理的文本比例,比单纯的准确率更接近分类器的实际用法。在新闻主题和银行意图上 Jev 明显领先;在情绪分类上两者都不可用,而且 Jev 的校准更差。这只是一项 300 条样本的试验,不是排行榜,也没有纳入 bart-large-mnli 这类 NLI 模型或提示式大模型。更多取舍见 Jev 的替代方案。

怎么写标签

定义每个标签,而不只是给它起名。 "商业"对编辑和会计意味着不同的东西。一行说明("公司、市场、财报与经济")才是任务定义所在。

把边界写明白。 如果团队会把芯片公司的财报归到商业,就在说明里写上:"公司业绩即使来自科技公司,也归入此类。"

加一个兜底选项。 真实数据里总有不属于任何标签的文本。other 选项能避免它们被硬塞进最接近的标签,它的概率也能告诉你标签集漏掉了多少。

会重叠的标签用 Noul。 一段文本可能同时讲价格和 bug,这是多标签分类。为每个标签各问一个 Noul,而不是用一个 Choice。

更多措辞技巧见设计 Jev 能回答的问题。

从试用到流水线

  1. 先标注一批样本。 一百条左右团队已分好类的文本,就足以看出 Jev 在哪里和你一致、你的标签定义在哪里有歧义。
  2. 不写代码处理积压数据。 批量页面可以对 CSV 的每一行跑同一组问题。
  3. 从样本里选阈值。 高于阈值的自动处理,其余交给人。这个划分正是上表覆盖率衡量的东西。
  4. 新文本走 API。 同样的评估可以用 API Key 通过 System One API 调用,扣点和试验台相同。

哪些时候 Jev 不是合适的工具

  • 细粒度情绪分类。 这正是基准里失败的场景。要么重点测试,要么用自己的标注数据训练模型。
  • 文本不能离开你的机器。 Jev 是托管模型;GLiNER 或 NLI 模型可以本地运行。
  • 标签集大且稳定,标注数据充足。 在你自己的任务上,用自己数据训练的分类器通常会胜过任何零样本模型,单次调用也更便宜。
  • 你需要写出来的推理过程。 Jev 返回的是带类型的答案,不是解释。

常见问题

什么是零样本分类?
零样本分类(zero-shot classification)是让模型把文本归到它在这个任务上从没训练过的标签里。你不用收集标注样本、训练分类器,只需描述每个标签,由模型判断哪个最合适。代价是在范围窄且稳定的任务上精度可能不如专门训练的模型,好处是标签一写好就能用。
这个零样本分类工具免费吗?
可以免费试用:本页的工具不用注册,每天可跑 3 次,示例文本可以修改,上限 2,000 字符。要用自己的文本和标签,免费注册 JevStation 账号即送 200 点,30 天内有效;一段文本、不超过 5 个问题扣 1 点。
Jev 和 GLiNER 做零样本分类相比怎么样?
在一项预先登记、每个数据集 100 条样本的独立试验中,Jev 在 AG News 上准确率 0.910,GLiNER 为 0.700;在 Banking77 上为 0.870 对 0.610。在六类情绪数据集 DAIR Emotion 上两者都不可用。GLiNER 可以本地运行,在标签少的任务上响应更快。
最多能用多少个标签?
在 JevStation 上,一个 Choice 问题最多 12 个选项,一次评估最多 12 个问题。标签更多时分两步:先分大类,再在大类里分具体标签。
一段文本能有多个标签吗?
可以,但要换一种问题类型。Choice 只会选出一个选项;多标签分类请为每个标签各问一个 Noul,比如"这段文本是否讨论价格?",每个 Noul 都返回 0 到 1 的独立概率。

相关页面

把它接进你的流程

注册即送 200 点,保存自己的问题集,并通过 API 调用同样的评估。