英语意群断句怎么做?切句与逐段翻译的两次弯路
打造 EasyDictation 的团队——面向英语学习者的听写练习工具,转写、意群切分与翻译流水线都是我们自己做的。

一切要从反馈板上的一条帖子说起:

听上去是个小修改:把段切短点,上线,收工。可越往下挖越清楚,这从来不是长度的问题,而是在哪里下刀的问题——用正式的说法,是怎么把英语句子切成一个个意群(thought group)。而这个问题一解决,又立刻生出一个更难的:怎么翻译这些片段,才不会教给别人错误的东西?
下面是两件事的完整经过——包括我们两次信心十足地做错。
第一部分——切得短容易,切得对很难
最快的办法是机械切分:每五个词一段,或者逢逗号就切。我们试了,产出的是这种碎片:
"the big" / "red car that I" / "bought last week"
算术上无懈可击,当听力材料一文不值。没有人会在 "the big" 和 "red car" 之间停顿——这样切出来的段,练的是一种真实语流里根本不存在的节奏。更糟的是,它要求你把一个没有意义的碎片按在脑子里,而短时记忆最出名的弱点,就是记不住没有意义的东西。
于是问题被改写成:哪些地方是绝对不许下刀的?
第二部分——手写切分规则:它是怎么失败的
我们坐下来,按英语组词的方式列出「绝不能从这里断开」的清单。以下位置内部一律不切:
- 限定词 + 名词 — the big red car
- 介词 + 它的宾语 — in the garden、of a week
- 助动词/情态动词 + 动词 — has been、did not answer
- 动词 + 小品词 — give up、look after
- "to" + 动词 — to share
- 专有名词和头衔 — New York City、Dr. Jane Smith
- 数字、日期、金额、度量
- 固定习语和复合名词 — on the other hand、climate change
- 所有格 + 名词 — John's car
再加一条听起来理所当然的:一段绝不能停在一个孤零零的功能词上——不能让一段吊着个 "of" 结尾。
然后我们动手实现。就是在这里,一切散了架。
要知道哪个 "of" 是被孤立的,你得知道它属于哪个短语——也就是说,得先解析整个句子。而且情况越来越糟:
- 同一个词 "up":在 "give up" 里它是必须黏在动词上的小品词;在 "walked up the hill" 里它是属于后面内容的介词。对只看字符的代码来说,两者一模一样。
- "New York City" 必须保持完整——可代码不外挂一个命名实体识别器,根本不知道它是专有名词。
- "1,000" 里的逗号永远不是断点;"In 2020, we…" 里的逗号是最理想的断点。同一个字符。
- "to share" 里的 "to" 是不定式;"went to London" 里的 "to" 是介词。
每加一条规则就冒出三个例外。写到一半,我们抬起头,意识到自己在造什么:一个英语句法解析器。而且就算造完,它也还是会输给某个足够别扭的真实句子。
接着是一个相当显然、我们却迟迟才肯接受的领悟:**今天的语言模型恰恰是这件事的行家。**分辨 "give up" 和 "walked up",知道 "New York City" 是一个整体,知道哪个逗号是语气停顿、哪个是数字分隔符——这正是它们从几十亿个英语句子里学来的本事。我们在手写一种模型早就具备的能力。
于是我们把角色对调:
- **规则不再是代码,而成了任务书。**上面那份「绝不能从这里断开」的清单,如今整个住在提示词里。
- **切分边界 100% 由模型决定。**代码不再发明任何东西——不为凑词数打包,不设长度上限。
- 代码退回到它真正擅长的事——校验:
- 逐词核对每个 token 是否与原始词表一致。模型可以丢标点,但改动或漏掉一个词,整个候选切分就作废,退回备用方案。
- 用逐词时间戳给每段计时,按下播放键就正好落在那个片段上。
- 把每一段映射回它所属的句子——这个细节后面救了我们一命。
有一个小改动作用极大:我们喂给模型的是带标点的转写稿,而不是把裸词重新拼起来的字符串。逗号和句号是录音留下的最强断句线索,抹掉它们等于扔掉手里最好的证据。
第三部分——按什么标准切:意群与语调单位
把刀交给模型,不等于任它自由发挥。我们仍然要告诉它按什么标准下刀——这里需要的是真正的学术依据,不是感觉。
人说话不是一个词一个词往外蹦的。语流是按意群(thought group,也叫 sense group)组织的。
一个意群是承载一个意思的一组词,在一口气里说完——停顿只落在意群与意群之间的边界上,绝不落在意群内部。
在语言学里,这个单位就是 Wallace Chafe 所描述的语调单位(Intonation Unit)——一种中间层级的韵律短语,它把连续的语流切成大小正好适配听者有限注意焦点的块。这不是审美偏好:语调单位对英语口语记忆的作用,有专门的研究。
再补一块认知心理学的拼图:工作记忆大约能装下 7±2 个单位(Miller, 1956),后续研究把它下修到约 4±1(Cowan, 2001)。这正是我们最短档位定为 2–4 个词的原因——不是为短而短,而是短到在你还在拼命抓音的时候,也能塞进短时记忆。
而最让我们安心的一点是:专业字幕人早就把这件事定下来了。《BBC 字幕规范》要求字幕在自然的语言学断点处分行,让每一行构成一个完整的语言单位——并且点名列出要避开的切法:冠词和名词之间、介词和后面的短语之间、连词和后面的从句之间、代词和动词之间——同时优先在小句边界分行。
我们在第二部分手写的那份清单,和它几乎逐条对上。这不是巧合:两者出自同一个源头——英语组词的方式。我们只是在重走广播字幕行业早已铺好的路,而正是这一点让我们确信方向没错。
三个切分档位——以及为什么是三个
有了这些依据,三个档位就不再是随手拍的数字:
| 档位 | 大小 | 依据 | 适合 |
|---|---|---|---|
| 稳步(Steady) | 2–4 个词 | 工作记忆容量上限(约 4±1) | 刚起步,或语速很快的素材 |
| 自然(Natural) | 5–9 个词,接近小句 | 语调单位 + 「优先小句边界」 | 日常练习 |
| 流畅(Fluent) | 整句 | 完整的语义单位 | 能整句咬住之后 |
每个档位各自保留进度,中途切换不会丢掉已经做完的部分。
一个没计划过的收获:口语练习
按意群下刀还打开了另一扇门。因为每一段恰好是一口气,你可以逐段跟读——一整段一口气说完不断气,停顿的位置和母语者一模一样。
试试一口气跟读一个 25 个词的句子,你会在半路憋住,在一个没人会断的地方断开。按段跟读是另一种练习:你练的是英语口语的节奏,不只是单词的发音。一次切分,听说两用。
还不熟悉听力练习的三个阶段(听 → 听写 → 跟读)?读我们之前那篇——本文默认你已经在第 2–3 阶段。
**第一课:切分是一个语言学决定,不是一次除法运算。**当一个问题纯属语言学问题时,最好的解题者不是我们写的代码,而是学过这门语言的模型。我们的活儿是把任务书写准,再毫不留情地校验。
第四部分——逐段翻译:更难的那个问题
切分解决后,一道难看的接缝露了出来:每个四词的小段下面,挂的仍是整句的译文。你正打着 "our brain is working",底下却躺着一整行译文——既多余,还剧透了你没听到的后半句。
「那就每段单独翻译呗」,听起来顺理成章。可它背着三条互相打架的约束:
- 片段要译出它自己的意思 → 这需要整句语境。
- 但它不能剧透句子的其余部分。
- 它还不能借用邻段的词。
弯路一:把整句译文切开分给各段
这个思路当时觉得天衣无缝:整句译文本来就是对的,那就把它切分到各段头上。拼回去正好还原原文——不多一字,不少一字。
在乖巧的句子上它确实漂亮:
"I was appointed six months ago," → 「我是六个月前被任命的,」 "and the more I've spoken about feminism," → 「而我谈论女性主义越多,」
然后我们撞上了这句:
"It's an environmental issue which, like the growing amounts of plastic waste, isn't going away."
片段 "of plastic waste," 被分到的译文是:「塑料在不断增多,」。
拼回整句仍然完美。可学习者盯着的是 "of plastic waste" 这四个词,却被告知它们的意思是「塑料在不断增多」。"growing" 这个词属于前一段。我们刚刚教了一个错误的东西。
注意这个细节:又是 "of"。切分时它坑过我们一次,翻译时它回来又坑了一次。
**拼起来正确,不等于每一块都正确。**不同语言的语序不同,一个整体忠实的切分,局部完全可以是错的。
弯路二:逐段翻译——但仍把整句译文递了过去
吃一堑之后,我们改成每段单独翻译,同时把完整英语句子和已有的整句译文一起塞进上下文,理由是这样能保持用词一致。
结果:
"of plastic waste," → 「日益增多的塑料垃圾,」
还是被污染了。因为一旦眼前摆着一份现成的译文,模型就不再翻译,而是回头去切分那份译文。我们亲手把想拿掉的拐杖又递了回去。
错误的上下文,比没有上下文更糟。
真正管用的做法
把整句译文从提示词里彻底拿掉。只保留完整的英语原句,并且只让它干一件事:给多义词消歧。再加一条不留情面的指令:只翻译这一段里的词;属于别段的词,一个都不许出现。
"of plastic waste," → 「塑料垃圾的,」 ✓ "the growing amounts" → growing 留在了它该在的段里
三条互相打架的约束,在角色分开的那一刻和解了:英语原句提供语境,但被翻译的只有本段自己的词。
最后一个坑:译对还不够,得回回都对
第一版为了省钱,把 25 个句子打包进一次调用。模型开始数错每句有几段——而段数对不上,整句作废。填充率是 137 段里只有 58 段。一大半学习者看到的仍会是旧的整句译文。
两个再普通不过的修法:
- 缩小批次——每次调用的条目变少,模型就不再数丢。
- 失败的句子单独重试——单条调用几乎从不出错。
结果:137 / 137。为了不用延迟来买单,这些调用带着一个合理的并发上限同时跑。
第五部分——最终体验:逐段译文,加上整句
折腾完这一大圈,学习者看到的东西安静而简单:
- **每一段显示它自己的译文。**你打到哪,就懂到哪。
- **句子的最后一段,整句译文同时出现。**局部和整体都拿到——而且毫无剧透,因为它只在你打完整句后才现身。
- **缺了也能体面退回。**只有一段的句子,或模型没处理好的句子,会安静地退回整句译文。绝不留白。
而且译文不只有越南语。它跟随你在设置里选择的母语——随时可换,同一节课就用你自己的语言呈现:
留在我们身上的东西
回头看看走了多远。早年我们靠的是 YouTube 的免费字幕:有拼写错误、标点错误,偶尔干脆是错词——而对听力练习最致命的是,它按视频画面宽度折行,不按意思折行。一行字幕在哪结束,是播放器定的,不是英语定的。
今天,同一支视频要经过:AI 转写 → 有语言学依据的三档意群切分 → 逐 token 校验 → 逐词计时 → 每一段配一条你母语的专属译文 → 外加对没译好的句子逐条重试。这一切都已上线——看更新日志。
成本翻了好几倍。每支视频要多出许多次模型调用,加上重试,再按语言数量翻倍。这是一张实打实的账单。
但这篇文章里的两个问题,起点是同一个地方:**一个本来就能用、只是我们觉得不够好的东西。**机械切分——能用。每段都挂整句译文——能用。把译文切开分配——说实话还挺优雅。
它只是不对。而「能用」和「对」之间的那段距离,恰恰是学习者真正感受到的部分。
这篇文章的起点,就是开头截图里那一条反馈。如果产品里还有什么让你觉得「能用,但别扭」,尽管发给我们。