用 AI 帮我写了一本私人词典
2026-08-12
公开词典装不下的词
sdcv-pure.el 让我的 Emacs 词典系统变得完全不依赖外部——纯 Elisp 读取 StarDict 格式,开箱即用。
配上 15 本公开词典,从懒虫简明(45 万词)、朗道英汉(43 万词)、Collins Cobuild 5、OALD、Longman 到 Wiktionary,日常查词已经够用。
但有些词,公开词典里没有:
- 行业缩写——各个领域的内部术语、项目代号、简写
- 人名昵称——只有你懂的称呼
- 口语短语——fiddly knob、smoking gun,读文章时经常碰到但词典释义不够生动的表达
- 缩写用法——e.g. 和 i.e. 的区别,每次用都要想一下
这些词散落在聊天记录、笔记、浏览器标签页里。每次遇到要重新搜索,效率很低。
于是我想:能不能建一本属于自己的词典?
为什么是 StarDict 格式
答案很简单——格式本身是开放的,工具生态成熟。
StarDict 的词典由三个文件组成:
.ifo— 元数据(词典名、词数、版本).idx— 单词索引(二进制,UTF-8 编码,包含每个词条在数据文件里的偏移量).dict/.dict.dz— 释义数据
公开词典的转换社区(胡正等人)已经做了大量工作。sdcv-pure.el 可以直接读取。任何支持 StarDict 的应用——GoldenDict、QDict、Aard Dict——都能用。
数据是开放的,我完全控制。不依赖任何公司的服务器。
AI 帮我写释义
词典格式定了,最难的部分是内容。
每个词条需要:音标、词性、中文释义、英文定义、例句、中文例句。按这个标准,手写一篇很花时间。
我用 AI 来完成这个工作。流程很简单:
- 告诉我需要查什么词——可能是读文章时遇到的,也可能是工作中常用的
- AI 生成完整词条——按统一格式,包含音标、词性、双语释义和例句
- 我审核、修改——确保释义准确,例句自然
- 写入源文件,编译
比如这个词条:
fiddly knob [ˈfɪdli nɒb] n. 棘手的问题; 难以处理的事: something small and annoying that's difficult to fix
The project had a few fiddly knobs that took forever to sort out.
(这个项目有一些棘手的小问题花了很长时间才解决。)
AI 生成的初稿经过我的调整,最终定型。
还有区分容易混淆的缩写:
e.g. [ɪɡˈzæmp.li ˈɡrɑː.tiː-a] abbr. 例如: short for Latin exempli gratia; used to give one or more possible examples
After work, I'll walk over to a sports arena, e.g., Thunderdome or Victory Court.
(下班后我会去一家体育馆,比如雷域或胜利法庭。)
i.e. [ˌaɪ ˈiː] abbr. 即; 换句话说: short for Latin id est; used to clarify or rephrase, providing more precise information. Where e.g. opens up options, i.e. narrows them down.
After work, I'll walk over to that new sports arena, i.e., Thunderdome.
(下班后我会去那家新体育馆,即雷域。)
两组例句故意设计成平行结构,用对比帮助记忆。
编译脚本
词条写好后,需要一个编译器把纯文本转成 StarDict 二进制格式。
我写了一个 Python 脚本,约 200 行,读取一个简单的制表符分隔文件:
python3 compile.py my ~/dot-emacs/misc/my/
输出:
Reading my.words ...
20 unique words
Writing my.dict ...
Writing my.ifo ...
Done: 20 words, idx=312B, dict.dz=2103B
编译后的文件可以直接放入 sdcv-multiple-dicts 配置,在 Emacs 里和所有公开词典一起使用——同一个快捷键,同一个弹窗,C-j 在词典间切换。
词典里能装什么
一本私人词典的词条范围完全由你决定:
- 行业缩写——WFM(劳动力管理)、SLA(服务等级协议)、MTTR(平均恢复时间)等只在工作场景出现的首字母缩略词
- 口语与俚语——fiddly knob(棘手的问题)、smoking gun(确凿证据)等读文章时经常碰到但词典释义不够生动的表达
- 容易混淆的缩写——e.g. 与 i.e. 的对比,附带平行例句帮助记忆
- 个人词条——人名、昵称、对你有特殊意义的词
- 半常用词——low-hanging fruit(唾手可得的机会)等公开词典可能不收的短语
通用词典能查 “fiddly”,但未必知道 “fiddly knob” 是什么意思。通用词典收 “SLA” 的缩写全称,但不一定解释你工作语境下的含义。你的词典可以。
为什么值得做
公开词典的释义角度是通用的。你的词典知道你是谁。
AI 不是用来替代词典的,而是用来降低建词典的成本的。以前建一本私人词典需要大量手工查词、写释义、排版。现在 AI 帮你起草,你负责审核和调校——质量比纯 AI 生成高,效率比纯手工高。
数据完全在本地。 这些词条是你的私人知识库,存在你硬盘上的 StarDict 文件里。不依赖任何 API,不依赖任何云。十年后打开,还在。
下一步
这本词典还在生长中。随着阅读和工作积累,它会自然增长。
如果你也有”公开词典装不下”的词,StarDict 是一个值得考虑的方向。格式开放,工具多,数据完全属于你。
系列回顾:
- 在 Emacs 里实现无外部依赖的离线词典 — sdcv-pure.el 介绍
- 用 Elfeed 打造本地离线 RSS 阅读系统 — 离线 RSS
- 工具的半衰期 — 为什么离线优先
- 工具冻结 — 停下来审视你的工具栈