意图识别:判断一条客户消息想要什么

贴上一条客户或聊天机器人消息,用自然语言列出你处理的意图,Jev 会返回每个意图的概率,以及是否需要人工处理。不需要训练数据,也不需要标注语料。下面用一条银行客服消息直接试用,不用注册。

用你自己的文本试试

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

场景

从你定义的意图中,识别一条客户消息想要什么。

126 / 2,000

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

模型

这个工具检查什么

示例消息同时符合两个意图:客户被扣了两次款(重复扣款),其中一笔还在处理中,而"待处理交易"在大多数银行流程里是另一个独立意图。只返回一个标签的分类器会把这一点藏起来。一次评估问两个问题:

问题类型返回什么
intentChoice八个意图(含 other)各自的概率,以及置信度
needs_humanNoul需要人工而不是自动回复来处理的概率

这些意图仿照 Banking77 的风格编写,Banking77 是一个公开的银行客服消息数据集,所以下面公布的结果可以作为合理的参照。它们都没有经过训练,每个意图旁边那行文字就是它的全部定义。

为什么意图识别需要概率

只按第一意图分流的聊天机器人,会把 0.95 的答案和 0.45 的答案一视同仁。每个意图都有概率时,你可以做三件不同的事:

  • 自动处理:某个意图遥遥领先,置信度高。
  • 追问澄清:两个意图很接近时,问一句"您是想取消那笔待处理的扣款,还是对重复扣款提出申诉?"比瞎猜好。
  • 转人工:other 概率高,或 needs_human 概率高。

Jev 只能用你定义的选项作答,所以不会造出新的意图名,也没有要解析的输出,分流代码读一个键和一个数字就够了。

效果对比

我们知道的唯一独立测量是 jev-benchmarks,一项预先登记的试验:每个数据集取 100 条留出样本,比较 jev-1.13.0 和零样本模型 GLiNER。在 Banking77 上(样本中含 72 个意图):

模型准确率错误率 ≤5% 时可自动处理的消息中位延迟
Jev0.87086%246 ms
GLiNER0.61027%296 ms

GLiNER 在 Apple M4 Max 的 CPU 上本地运行,Jev 是通过网络调用的托管 API,所以延迟这一列比较的是两种部署方式,而不是两个模型。这只是一项 100 条消息的试验,不是排行榜,也没有纳入提示式大模型或在 Banking77 上训练过的分类器,后者的门槛会更高。在 JevStation 上一个 Choice 最多 12 个选项,所以像这样 72 个意图的集合需要用下面说的两层结构。

怎么定义意图

描述客户想要什么,而不是他们用的词。 "客户为同一笔消费被扣款不止一次"能覆盖"扣了两次""重复收费""一个订单付了两笔",不用逐条列举说法。

会导向不同动作的意图要分开。 如果重复扣款和待处理交易走同一个流程,就合并;走不同流程就都保留,让概率告诉你一条消息什么时候同时涉及两者。

始终加上 other。 它的概率告诉你真实消息有多少落在流程之外,这直接提示下一个该加的意图。

意图多时分两层。 先用一个 Choice 判断领域(银行卡、转账、账户、其他),再用该领域专属的 Choice 判断具体意图。一次评估最多可以问 12 个问题,所以你可以把领域问题和每个领域的意图问题一起发出去,只读取胜出领域对应的那个意图问题。

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

从试用到流水线

  1. 从日志里抽样。 几百条真实消息,每条标上团队会给的意图,就能看出定义哪里有歧义。
  2. 一次跑完。 批量页面可以对 CSV 的每一行跑同一组问题,不用写代码。
  3. 选定阈值。 选出机器人可以独立处理的置信度,以及需要转人工的 needs_human 概率。
  4. 线上消息走 API。 同样的评估可以用 API Key 通过 System One API 调用,扣点和试验台相同。

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

  • 你还需要实体抽取。 Jev 只做分类,不会提取金额、商户或日期。这些请用代码或生成式模型提取。
  • 答案取决于算术。 "我被扣的钱超过限额了吗?"是数字比较,这是 TypeSafe 明确记录的弱项。请在代码里比较。
  • 你已经有大量标注数据且意图稳定。 在该任务上,用自己数据训练的分类器通常会胜过零样本模型。
  • 消息不能离开你的基础设施。 Jev 是托管模型。

如果要按团队和紧急程度给整张客服工单分流,而不是按意图分类,请看客服工单分流工具。

常见问题

什么是意图识别?
意图识别(intent classification / intent detection)是把用户消息映射到它要求的动作上,比如查余额、取消付款、重置密码。聊天机器人和客服系统用它决定由哪个流程、哪条回复或哪个团队来处理。
用 Jev 做意图识别需要训练数据吗?
不需要。你用一行自然语言定义每个意图,Jev 就按这些定义分类。不过在正式依赖它之前,需要几百条已标注的消息来测量准确率、选定阈值,但让它跑起来并不需要。
Jev 做意图识别准不准?
在一项预先登记的独立试验中,Jev 在银行意图数据集 Banking77 的 100 条消息上准确率为 0.870,零样本模型 GLiNER 为 0.610;在错误率不超过 5% 的前提下,Jev 能自动处理 86% 的消息。这只是一项小规模试验,请用自己的消息测量。
最多能定义多少个意图?
在 JevStation 上,一个 Choice 问题最多 12 个意图。意图更多时分两层:先分大类(如银行卡、转账、账户),再在大类里识别具体意图。
这个意图识别工具免费吗?
可以免费试用:本页的工具不用注册,每天可跑 3 次,示例可以修改,上限 2,000 字符。要用自己的意图,免费注册 JevStation 账号即送 200 点,30 天内有效,每条消息扣 1 点。

相关页面

把它接进你的流程

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