ECDICT简介
ECDICT是一个由skywind3000开发的开源英汉双解词典数据库项目。它的全称是"Free English to Chinese Dictionary Database"(免费英汉词典数据库)。这个项目的目标是构建一个全面、准确、功能丰富的英汉词典数据库,为英语学习者和自然语言处理研究提供有力支持。
ECDICT的数据来源广泛,包括各类考试大纲和语料库。它收录了数十万条英文单词的英文和中文释义,并根据各类考试大纲和词频进行了标注。除了基本的单词释义外,ECDICT还包含了大量额外的信息,如音标、词频、词形变化等,这使它成为一个功能非常强大的词典数据库。
ECDICT的主要特点
-
收录词量大:包含数十万条英文单词及其释义。
-
双语释义:同时提供英文和中文释义。
-
详细信息:包含音标、词频、词形变化等多种信息。
-
标注丰富:根据考试大纲和词频进行标注。
-
开源免费:以开源方式发布,可自由使用。
-
多种格式:支持CSV、SQLite、MySQL等多种数据格式。
-
词形分析:提供词形变化分析功能。
-
模糊匹配:支持单词的模糊匹配查询。
ECDICT的发展历程
ECDICT项目的起源可以追溯到作者开发看书软件时需要一个内嵌字典的需求。最初,作者使用了一份包含约2万个英文单词释义的文本文件(EDictAZ.txt)。随着使用的深入,作者发现这个词库不够全面,于是又找到了一份包含四六级到GRE词汇的词库。
为了进一步完善词典,作者编写了爬虫程序,从各种资料中爬取音标信息,并自行补充了一些内容,最终形成了一个包含3万基本词汇的数据库。在随后的几年里,通过各种资料的整合和网友的贡献,词库的规模增长到了10万左右。
后来,作者又找到了Linux系统下的cdict-1.0-1.rpm这个开源字典数据(值得一提的是,著名的mdict词典的主词库也是由cdict转换而来)。作者将这些数据与英国国家语料库(BNC)的前16万单词进行了校对,补全了很多在语料库中词频较高但之前未收录的词条。
通过这一系列的努力,ECDICT逐步发展成为了一个内容丰富、功能强大的英汉词典数据库。
ECDICT的数据结构
ECDICT的数据结构设计得非常全面,每个词条包含了大量有用的信息。以下是ECDICT中每个词条的主要字段及其含义:
- word: 单词名称
- phonetic: 音标(以英语英标为主)
- definition: 单词的英文释义
- translation: 单词的中文释义
- pos: 词语位置(词性),用"/"分割不同位置
- collins: 柯林斯星级
- oxford: 是否是牛津3000核心词汇
- tag: 字符串标签(如zk/中考,gk/高考,cet4/四级等)
- bnc: 英国国家语料库词频顺序
- frq: 当代语料库词频顺序
- exchange: 时态复数等变换信息
- detail: JSON格式的扩展信息(如例句等)
- audio: 读音音频URL(待添加)
这种详细的数据结构使ECDICT不仅可以用作普通的查词工具,还能支持更高级的应用,如词频分析、词形变化研究等。
ECDICT的特色功能
1. 单词标注
ECDICT为数据库中的每个单词都进行了详细的标注,包括:
- 是否属于各类考试大纲词汇
- 在BNC(英国国家语料库)和其他语料库中的词频顺序
这种标注方式的优势在于,它能够同时提供传统和现代的词频信息。例如,"quay"(码头)这个词在当代语料库中排名很靠后,可能被认为是一个不太重要的生僻词。但在BNC中,它的排名是第8906位,属于高频词。这是因为在过去,航海是重要的交通方式,这个词在历史文献中出现频率较高。
相反,"Taliban"(塔利班)在BNC中几乎没有收录,但在当代语料库中排名第6089位,是高频词中的高频词。这反映了当代热点话题对词频的影响。
通过这种双重标注,用户可以根据自己的需求(如阅读历史文献或现代报刊)来选择合适的词汇学习重点。
2. 词形变化
ECDICT的另一个特色是详细记录了单词的各种词形变化。这包括:
- 动词的现在分词、过去式、过去分词、第三人称单数现在时等
- 形容词的比较级和最高级
- 名词的复数形式
这些信息存储在"exchange"字段中,使用特定的格式编码。例如,对于"perceive"这个词:
d:perceived/p:perceived/3:perceives/i:perceiving
这表示"perceive"的过去分词(d)和过去式(p)都是"perceived",第三人称单数(3)是"perceives",现在分词(i)是"perceiving"。
这种详细的词形变化信息使ECDICT能够支持更高级的语言处理任务,如词形还原(lemmatization)等。
3. 词干查询
ECDICT提供了一个名为"lemma.en.txt"的词干数据库,这是通过扫描BNC语料库全部1亿个词条语料生成的。这个功能允许用户将一个单词的各种变体转换为其原形(lemma)。
例如,使用LemmaDB类可以方便地查询['gave', 'taken', 'looked', 'teeth']的lemma是['give', 'take', 'look', 'tooth']。这个功能在进行文本分析、词频统计等任务时非常有用。
4. 单词词性
ECDICT的"pos"字段记录了单词在句子中的位置(词性)信息。这是通过扫描语料库生成的,不仅包含词性信息,还包含了各个词性在语料库中出现的频率。
例如,对于"fuse"这个词:
pos = n:46/v:54
这表示"fuse"这个词有两个词性:名词(n)占46%,动词(v)占54%。这种信息对于理解单词在实际使用中的常见用法非常有帮助。
5. 模糊匹配
ECDICT引入了一个名为"sw"(strip-word)的隐藏字段,用于支持模糊匹配功能。这个字段是通过去除单词中非字母和数字的部分,并将字母转为小写得到的。
例如,当搜索"long-time"这个单词时,严格匹配只能找到以"long-time"开头的词,如"long-time, long-time base, long-time period"等。但使用模糊匹配,可以找到所有"sw"以"longtime"开头的词,如"long-time, longtime, long time, long-time base, longtime base"等。
这个功能非常有用,因为随着时间推移,很多词的书写形式可能会发生变化(如从词组变为带连字符的组合词,再到一个完整的单词)。模糊匹配可以帮助用户找到同一个词的不同书写形式。
ECDICT的应用
ECDICT的丰富功能和全面的数据使它在多个领域都有广泛的应用:
1. 词典软件开发
ECDICT的数据可以直接用于开发各种词典软件。作者已经使用ECDICT的数据生成了《简明英汉字典增强版》的词典词库,可以在GoldenDict, 欧陆, MDict, StarDict, BlueDict, EDWin等多个平台上使用,甚至还有Kindle格式。这为用户提供了一个全面的离线词典解决方案。
2. 语言学习工具
ECDICT的详细词频信息和考试大纲标注使它成为制作各种语言学习工具的理想数据源。例如,可以根据不同的考试(如四六级、托福、雅思等)筛选出相应的词汇列表,或者根据词频制作分级词汇表。
3. 自然语言处理
ECDICT的词形变化和词干信息对于开发各种自然语言处理工具非常有用。例如,可以用于开发词形还原(lemmatization)工具,或者用于改进文本分析和信息检索系统的性能。
4. 编程接口
ECDICT提供了完整的编程接口,支持CSV、SQLite和MySQL三种数据格式。这使得开发者可以方便地将ECDICT集成到各种应用程序中。例如,已经有开发者基于ECDICT开发了Vim和Neovim的翻译插件。
ECDICT的未来发展
尽管ECDICT已经是一个功能强大的词典数据库,但它仍在不断发展和完善。作者在项目的TODO列表中列出了一些未来的发展计划,包括:
- 继续校对和补充各类专业词汇,如动物名词、植物名词、地理名词等。
- 补充完成非核心词汇的英文释义。
- 补充各个单词的位置信息。
- 补充动词的时态语态变种信息。
- 继续修订核心两万词汇的释义准确性。
- 添加更多的例句信息。
这些计划显示出ECDICT项目的雄心勃勃,致力于成为一个更加全面、准确和实用的词典数据库。
结语
ECDICT是一个令人印象深刻的开源项目,它不仅提供了一个全面的英汉词典数据库,还包含了大量额外的语言学信息。它的开放性和丰富的功能使它成为了语言学习者、教育工作者、自然语言处理研究者和软件开发者的宝贵资源。
随着项目的不断发展和完善,ECDICT有望成为英语学习和研究领域的一个重要工具。无论你是在学习英语,开发语言相关的应用,还是进行语言学研究,ECDICT都可能成为你的得力助手。
作为一个开源项目,ECDICT也欢迎社区的贡献。如果你对这个项目感兴趣,可以考虑为它贡献代码、提供数据或者报告问题。通过共同努力,我们可以让ECDICT变得更好,为更多的人提供帮助。