我想点一下字幕里的生词,就能看到释义;把它存进词表后,还能回到当时那句话。第一版先把这个做好。
要解决什么
词典告诉我一个词有哪些解释,但不会替我决定这段内容里哪些词值得学,也不会自动知道每个词出现在字幕的什么位置。
有哪些方案
可以逐词调用在线词典,也可以让模型直接生成生词表。我先选本地 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 句手工标注样本,覆盖大小写、变形、缩写、重复词、未知词和歧义。分别记录查词覆盖率、标注位置是否正确、选出的词是否有用。
本地函数稳定后再接步骤队列,输出版本包含词库版本和规则版本。同一输入重复处理,应得到一致的结构。前端先实现点击一个词显示卡片,再做整份词表。