把英文释义翻成中文。难点不在翻,在选义项——board 可以是画板、董事会、上船。 同一张义项表,换一句上下文就换一个答案。不带上下文翻,等于闭着眼睛选。 演示里关键词表这个替身过了三关,第四关栽了:那句话里一个关键词都没有。
翻译节点看着最没技术含量——不就是翻个词?真做起来,它是全链最容易出错的一步。 因为它的错不显眼:翻出来的中文读着通顺,只是意思不对。这种错最难在测试里发现。 书里这一步挂的是通用大模型。 本沙箱没有模型,下面用关键词表代替——替身失手的地方,正是模型需要上下文的地方。
一、直译错在哪
board 有三条常见义项:写字用的板子、公司里的董事会、登船。
查词典翻,词典按词频给第一个——多半是「板子」。放在单词卡上恰好对,放在别的地方就全错。
错的不是词典,是「只给一个词」这件事本身。 一个词离开上下文就没有确定意思。
这一点在第 9.4 节的「抽全不等于抽对」里出现过一次:那里错在格式,这里错在意思。 两种错都不会让字段数掉下来。
二、上下文从哪来
好消息是上下文本来就在手边:图上的那句例句。
例句是 I ate an apple after lunch.,那就知道 apple 在这张卡上是水果,不是苹果公司。
所以翻译节点的输入不能只绑「英文释义」一个字段,还要把例句一起绑进去。
演示里 board 那条上下文是「卡片上这个词,配图画的是教室里写字用的板子」,三个关键词全中:写字、
板子、教室。
换成「公司开会,board 指的是那间会议室里的人」,中的就变成公司、开会、会议室。
同一个词、同一张义项表,答案跟着上下文换。
三、替身是怎么栽的
四条上下文,前三条全对,第四条错了:
| 上下文 | 选中 | 应该 |
|---|---|---|
| 卡片上这个词,配图画的是教室里写字用的板子 | 画板 | 画板 |
| 公司开会,board 指的是那间会议室里的人 | 董事会 | 董事会 |
| 码头广播说现在开始 board,请旅客登船 | 上船 | 上船 |
| 他说该 board 了,我们快点过去 | 画板 | 上船 |
第四句里一个关键词都没有,三个义项全 0 分,规则退回表里第一个——画板。 这不是关键词表笨,是它只会做模式匹配。 真机上模型读得懂「该 board 了」是在说该登船,因为它见过这种说法。 两条修法:把同义词补进关键词表,或者让上游把上下文写具体——改说「该登船了」,命中就回来了。
四、多带一句上下文,多花多少钱
只翻释义三个 token,五个字段全翻十一个,带上上下文四十一。 多出来的三十个 token 换的是「选对义项」的概率。这是整条链上最划算的一笔开销。 反过来说,如果这一步只翻单个词、不带上下文,那它根本不值得存在——查词典更快更便宜。
一个节点值不值得留,看它有没有做「别人做不了的事」。 翻译节点做的事,就是结合上下文选义项。
五、什么时候这一步可以省
三种情况可以去掉翻译节点:目标用户能读英文释义、单词本身没有多义、卡片上只放单词和图不放释义。 第一种最常见:给备考的人做的工具,英文释义反而更好——那是他们要练的东西。 去掉之后整条链少一步、少一次调用、少一处可能出错的地方。能少一步就少一步,别为了「完整」留着。
六、动手 Demo:翻译:看句子选义项,别查字典
三个词各配三条义项,每个词给一句上下文,看它选中哪条。 再把 board 换上四条不同上下文,看答案怎么跟着变。
SENSES = {u'board': [(u'画板', [u'写字', u'板子', u'教室']),
(u'董事会', [u'公司', u'开会', u'会议室']),
(u'上船', [u'登船', u'码头', u'旅客'])]}
def pick(ctx, senses): # 关键词命中数最多的那条
sc = sorted(((sum(k in ctx for k in keys), cn)
for cn, keys in senses), reverse=True)
return sc
实跑输出:
--------------------------------------------------------------------
翻译:看句子选义项,别查字典
--------------------------------------------------------------------
① 一个词三个义项,靠上下文挑
--------------------------------------------------------------------
| 词 | 上下文 | 选中 | 应该选 | 命中数 |
|---|---|---|---|---|
| board | 卡片上这个词,配图画的是教室里写字用的… | 画板 | 画板 | 3/0/0 |
| spring | 这句在讲花开了,天气变暖 | 春天 | 春天 | 3/0/0 |
| bank | 句子说沿着水边走就能到对岸 | 河岸 | 河岸 | 2/0/0 |
三个词选中 3 个。命中数按表里顺序读:画板 / 董事会 / 上船。
靠的不是词本身,是那句上下文——同一个 board,上下文一换,选中的义项就换。
② 同一个词,四条上下文四个答案
--------------------------------------------------------------------
| 上下文 | 选中 | 应该选 | 对不对 |
|---|---|---|---|
| 卡片上这个词,配图画的是教室里写字用的板子 | 画板 | 画板 | 对 |
| 公司开会,board 指的是那间会议室里的人 | 董事会 | 董事会 | 对 |
| 码头广播说现在开始 board,请旅客登船 | 上船 | 上船 | 对 |
| 他说该 board 了,我们快点过去 | 画板 | 上船 | 错 |
第四行栽了:那句话里一个关键词都没有,三个义项全 0 分,规则退回表里第一个——画板。
真机上模型遇到这种句子同样靠猜,只是猜得比「退回第一个」像样一点。
! 修法两条:把同义词补进关键词表,或者把上下文写具体——改成「该登船了」,命中就回来了。
③ 翻五条比翻一条贵多少
--------------------------------------------------------------------
| 喂什么进去 | token | 翻几条 |
|---|---:|---:|
| 只翻释义 | 3 | 1 |
| 五个字段全翻 | 11 | 5 |
| 带上下文一起翻 | 41 | 5 |
带上下文只多 30 个 token,但选对的概率差得远——这是全章最划算的一笔开销。
①第一张表三行:board 命中 3 个、spring 命中 3 个、bank 命中 2 个,全选对。 ②命中数按表里顺序读:画板 / 董事会 / 上船。三个词都是第一个义项中标。 ③第二张表四条上下文,前三条全对,第四条错了——那句里一个关键词都没有。 ④错的那条退回表里第一个,和模型没线索时瞎猜是同一个后果。 ⑤最后一张表:只翻释义 3 个 token,五个字段 11 个,带上下文 41 个,多 30 个。
30 秒实验
- 翻开你现在这条链,看翻译节点的输入绑了几个字段。只绑了单词的,把例句一起绑上。
- 找一个你熟悉的词,写出它的三个义项和三句上下文,看你能不能一眼选对。选不对就说明上下文不够。
- 把例句删掉再跑一次,对比两次结果。差的那一次,就是上下文省下来的钱。
常见误区
- 「翻译就是查词典。」一个词离开上下文没有确定意思。查词典只能给最常见的那个。
- 「上下文太长,费 token。」多三十个 token 换选对义项,这是全链最划算的一笔。
- 「这一步可有可无。」要么让它结合上下文,要么干脆删掉。只翻单词的翻译节点不值得留。
自测三问(点开对答案)
1. 为什么不能只翻单词? —— board 可以是画板、董事会、上船。离开上下文就没有确定意思,只能给最常见的那个。 2. 上下文从哪来? —— 图上的例句就是。翻译节点的输入要同时绑英文释义和例句,不能只绑一个字段。 3. 替身为什么在第四句栽了? —— 那句里一个关键词都没有,三个义项全 0 分,规则退回表里第一个。模型能读懂,规则不能。文字部分全齐了:五个字段,中文释义。下一节把它们画成一张卡片。
- ☐ (本篇完,下一篇 9.6 配置【画板】节点)
相关笔记
- 配置【信息提取】节点:抽全不等于抽对
- 提示词的分类和写作方法:提示词里怎么定角色
- 配置文案改写模块:上一章同样的位置
- 🐦 扣子开发 AI Agent · 索引