
ECDICT 开源英汉词典数据库实战指南一文读懂查询、词形还原与三格式选型【免费下载链接】ECDICTFree English to Chinese Dictionary Database项目地址: https://gitcode.com/gh_mirrors/ec/ECDICT你写一个背单词 App本地想内嵌一套英汉词典翻遍网上资料却踩了三个坑要么词条太少连四级词汇都缺要么没有音标没有词性标注要么词典格式封闭没法塞进自己的程序里。如果你正卡在这种想要一份干净、可编程、带词频等级的英汉词典数据的处境那 ECDICT 这款免费开源英汉词典数据库就是为你准备的答案。它收录了超过 76 万条英汉词条附带 BNC 与当代语料库双重词频、考试大纲标签、完整词形变化并提供 CSV、SQLite、MySQL 三种存储格式和统一的 Python 编程接口是搭建翻译工具、语言学习产品与文本分析管线时最省心的数据底座。一分钟摸清数据长什么样ECDICT 的核心数据是一张扁平的词条表每个单词一行列的含义非常直观。以ecdict.mini.csv里的记录为例你一眼就能看明白各字段的作用字段含义典型值word单词hoodphonetic音标hʊdtranslation中文释义n. 罩风帽面罩pos词性占比n:46/v:54tag考试标签cet4 cet6 toefl ieltsbnc / frq传统 / 当代词频8906 / 21000exchange词形变化p:perceived/d:perceived/...oxford / collins牛津3000 / 柯林斯星级1 / 5每个词条还隐藏了一个swstrip-word字段把单词里所有非字母数字的字符去掉并转小写比如long-time会变成longtime。这个字段是后面模糊匹配功能的关键我们稍后会细讲。五分钟跑通第一个查询仓库根目录的stardict.py是唯一的入口文件同时实现了三个类DictCsv读写 CSV、StarDict读写 SQLite、DictMySQL读写 MySQL。三个类接口完全一致切换存储格式时不用改业务代码。# 拉取仓库含 ecdict.csv 与全套工具 git clone https://gitcode.com/gh_mirrors/ec/ECDICT下面这段代码演示最基础的单词查询输出音标、中文释义和两种词频from stardict import DictCsv # 加载 CSV 基础版本76 万词条首次载入会构建内存索引 dict DictCsv(ecdict.csv) # 查询任意单词返回一个 Python 字典 info dict.query(ability) print(info[phonetic]) # 音标 print(info[translation]) # 中文释义 print(info[bnc], info[frq]) # BNC 排名与当代语料库排名 print(info[tag]) # 属于哪些考试大纲如果你不想每次等 CSV 加载花十几秒把数据转成本地 SQLite 即可之后查询基本无感from stardict import StarDict, DictCsv # 把 CSV 逐条注册进 SQLite 数据库文件 csv_dict DictCsv(ecdict.csv) db StarDict(my_ecdict.db) for _, word in csv_dict: data csv_dict[word] db.register(word, data, commitFalse) db.commit()三个最值得深挖的卖点卖点一Exchange 字段一个字段装下全部词形变化传统词典只收录原形用户输入perceived往往查不到。ECDICT 用exchange字段把动词时态、形容词比较级、名词复数全部记录在案编码规则一目了然p过去式、d过去分词、i现在分词、3三单、r比较级、t最高级、s复数、0词干原型。# 查询一个不规则动词的完整变形 info dict.query(perceive) print(info[exchange]) # 输出形如d:perceived/p:perceived/3:perceives/i:perceiving # 即过去分词 perceived、过去式 perceived、三单 perceives、现在分词 perceiving有了它你的 App 查词时可以直接展示过去式/复数/比较级全套信息背单词卡片也能自动生成变体题这是绝大多数开源词典数据给不了的能力。卖点二LemmaDB把变体还原成原型的最可靠方案做词频统计时goes、went、gone如果不归并成go统计结果就是碎的。网上流行的规则算法砍-ed、砍-ing准确率堪忧而 ECDICT 直接提供了基于 BNC 语料库一亿词条生成的词干数据库lemma.en.txt收录了 18 万 词形归属 8.4 万 个词干组。from stardict import LemmaDB # 加载词干数据库并做归并查询 lemma LemmaDB() lemma.load(lemma.en.txt) # 把文档里抓到的变形词还原为原型 stems [lemma.word_stem(w) for w in [went, giving, children]] print(stems) # 输出 [go, give, child]word_stem返回的是该词的所有可能原型配合频率信息即可选出最合理的那个。官方建议把数据库查询作为首选算法兜底放第二层。卖点三sw 字段驱动的模糊匹配连写错都能帮你找到用户输入long-time词典里只有longtime或long time严格匹配必然失败。ECDICT 用sw字段解决了这个痛点match方法开启fuzzy后会按去符号后的 key 去匹配一次性把long-time、longtime、long time全部召回。# 模糊匹配无论用户怎么连写、加连字符都能命中 hits dict.match(long-time, limit10, fuzzyTrue) print(hits) # 输出 long-time、longtime、long time 及其派生词这个机制参考了 Mdx 词典的容错设计作为查不到时的兜底搜索非常实用。两个贴近真实业务的落地场景场景一做一款分级背词 App利用tag和词频字段可以一键筛出四级范围内但词频靠后的冷门词或托福独有、与六级不重合的词给用户做差异化推荐def pick_words(dict_obj, tag_name, max_rank): 按考试标签 当代词频上限筛选单词 result [] for _, word in dict_obj: data dict_obj[word] if tag_name in (data.get(tag) or ): if data.get(frq) and data[frq] max_rank: result.append(word) return result[:500] # 拉取当代语料库中排名前 1 万的四级词汇 words pick_words(dict, cet4, 10000)场景二做翻译插件的前置归一化翻译插件先查缓存词库失败后用LemmaDB还原原型再查一次最后才走模糊匹配三阶段显著提升命中率减少对在线 API 的依赖def smart_query(word): 三级查询原形 - 词干还原 - 模糊匹配 hit dict.query(word) if hit: return hit stem lemma.word_stem(word) if stem and stem[0] ! word: return dict.query(stem[0]) fuzzy dict.match(word, limit1, fuzzyTrue) return dict.query(fuzzy[0][1]) if fuzzy else None三种格式怎么选速度、内存与并发的取舍对比维度CSVDictCsvSQLiteStarDictMySQLDictMySQL单次查询毫秒级内存索引最快受网络影响首次加载需要全量读入内存无需无需内存占用高低低并发单进程只读并发友好读写并发适合场景脚本调试、数据修订桌面 App、离线工具多端在线服务实战建议开发期用 CSV 看差异、方便提 PR本地日常使用一律转 SQLite快且省内存如果要做成在线查询服务或有团队协作写库的需求再上 MySQL。需要强调的是仓库根目录的ecdict.csv是基础版完整大数据集在stardict.7z压缩包里。常见坑与避坑清单别用 Excel 直接双击打开ecdict.csv会乱码。要用数据 → 从文本导入指定逗号分隔和 UTF-8 编码。修订数据时建议小 CSV 配大 SQLite 双库同查新词先写进小 CSV 试用稳定后再合并进大库。detail字段是 JSON 文本读写时stardict.py会自动做序列化和反序列化别手动改字符串格式。提交词条贡献时记得用 CSV 格式方便维护者看 diff 和 patch。生态与未来围绕 ECDICT 已经长出了一条小生态dictutils.py提供词典差异导出/导入、CSV 与 SQLite/MySQL 互转、StarDict 与 MDX 格式导出linguist.py封装了 WordNet 和 NodeBox 的语言处理能力wordroot.txt收录了大量词根词缀资料resemble.txt是近义词辨析笔记都是背单词产品的优质素材。它也被 T.vim、Trans.nvim 等编辑器翻译插件集成社区持续在为核心两万词的释义准确性做修订。写在最后一句话总结 ECDICT 的价值一份数据三种格式一把 Python 接口覆盖查询、词形、词干、模糊匹配四大刚需。从个人脚本到生产级服务它都能当那块最稳的地基。去 clone 一份仓库先把stardict.py跑起来再按你的业务挑一种格式落地——十分钟后你的词典功能就能上线了。【免费下载链接】ECDICTFree English to Chinese Dictionary Database项目地址: https://gitcode.com/gh_mirrors/ec/ECDICT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考