我想点一下字幕里的生词,就能看到释义;把它存进词表后,还能回到当时那句话。第一版先把这个做好。

要解决什么

词典告诉我一个词有哪些解释,但不会替我决定这段内容里哪些词值得学,也不会自动知道每个词出现在字幕的什么位置。

有哪些方案

可以逐词调用在线词典,也可以让模型直接生成生词表。我先选本地 ECDICT,加自己的选词规则。它有释义、考试标签、词频和词形变化数据;适合离线查词,不等于上下文翻译模型。ECDICT 项目说明

第一版怎样做

05_vocabularyService/cmd/main.go 的占位程序开始,但先实现可本地调用的处理函数,不急着接队列。

固定一份词库版本与校验值,导入 SQLite,给规范化词条建索引。保留来源和许可文件;缺少的音标、词频、标签按未知处理,不能用零自动代表“最常见”。

输入使用第 03 篇的转写 revision 与段落 ID。处理顺序先定为:保留原文位置 → 英文分词 → 查原始词形 → 查词元候选 → 批量查询 → 过滤与排序。

词形有歧义时保留候选或标记未确定,例如 saw 不一定就是 see 的过去式。不要把查得到一个词元当成已经理解整句话。第一版明确只处理英文词汇,其他语言保持原文。

输出分两层:词条层保存 lemma、释义、标签和文内次数;出现位置层保存原始词形、segment_id、起止偏移。把 run/running 聚合成一个词条,也要保留每次出现的位置。

偏移统一为段内 Unicode code point 的半开区间 [start, end),原文不先压缩空白;前端按同样规则切分,别把 Go 字节下标直接交给 JavaScript 字符串切片。用一个带 emoji 的例句检验偏移。

先提供“全部词汇”和“目标考试词汇”两种视图。用词库标签过滤,再结合文内次数排序,规则公开可解释。段落只有段级时间戳时,点击单词回放所在段落,不承诺词级定位。

怎么验收

准备 20 句手工标注样本,覆盖大小写、变形、缩写、重复词、未知词和歧义。分别记录查词覆盖率、标注位置是否正确、选出的词是否有用。

本地函数稳定后再接步骤队列,输出版本包含词库版本和规则版本。同一输入重复处理,应得到一致的结构。前端先实现点击一个词显示卡片,再做整份词表。

目录 · 下一篇:翻译的边界