在打算批量代码汉化工具 · Issue #86 · program-in-chinese/overview时, 发现没有现成的Java库实现英汉查询功能. 于是开此项目.

源码库: program-in-chinese/english-chinese-dictionary

API使用中文命名. 源码也是.

使用时在Maven项目中添加依赖:

<dependency>
<groupId>com.codeinchinese</groupId>
<artifactId>english-chinese-dictionary</artifactId>
<version>0.0.1</version>
</dependency>

词典数据来源于skywind3000/ECDICT. 77万个词条, 除不到2千词之外绝大多数有中文释义. 将这个词典数据(csv文件)封装的后果是这个jar包有22MB, 首次调用'查词'接口需要一段时间加载数据(本机测试十秒左右), 之后的查词是哈希表查询, 速度还能接受.

下面是返回词条数据结构:

public class 词条 {

  public String 英文;
public String 音标;
public List<String> 英文释义;
public List<String> 中文释义;
public String 词语位置;
public int 柯林斯星级;
public boolean 为牛津三千核心词; // zk/中考,gk/高考,cet4/四级等
public String 标签; // 如果为0, 无词频数据, 否则为正数
public int 英国国家语料库词频顺序;
public int 当代语料库词频顺序; public List<词形变化> 变形;
public String 详细;
public String 在线读音音频;
...
}

词形的几种变化:

public enum 词形变化类型 {
过去式("p"), // past tense
过去分词("d"),
现在分词("i"), // -ing
第三人称单数("3"),
形容词比较级("r"), // -er
形容词最高级("t"), // -est
名词复数形式("s"),
原型("0"),
原型变换形式("1");
...
}

接口定义很简单, 调用:

英汉词典.查词("apple")

返回值打印输出(toString生成类JSON样式, 下同):

{
英文: apple
音标: 'æpl
英文释义: n. fruit with red or yellow or green skin and sweet to tart crisp whitish flesh
n. native Eurasian tree widely cultivated in many varieties for its firm rounded edible fruits 中文释义: n. 苹果, 家伙
[医] 苹果 词语位置:
柯林斯星级: 3
为牛津三千核心词: true
标签: zk gk
英国国家语料库词频顺序: 2446
当代语料库词频顺序: 2695
变形: 名词复数形式:apples;
详细:
在线读音音频:
}

可以查出原型:

{
英文: shopping
音标: 'ʃɒpiŋ
英文释义: n. searching for or buying goods or services
n. the commodities purchased from stores 中文释义: n. 买东西, 购物
[经] 购物, 买东西 词语位置:
柯林斯星级: 3
为牛津三千核心词: true
标签: gk cet4 cet6 ielts
英国国家语料库词频顺序: 2763
当代语料库词频顺序: 2713
变形: 原型:shop; 原型变换形式:i; 现在分词:shopping;
详细:
在线读音音频:
}

也有很多常见短语:

{
英文: beat around the bush
音标:
英文释义:
中文释义: 转弯抹角, 旁敲侧击, 拖延谈及正题 词语位置:
柯林斯星级: 0
为牛津三千核心词: false
标签:
英国国家语料库词频顺序: 0
当代语料库词频顺序: 0
变形:
详细:
在线读音音频:
}

其中释义部分只根据源数据格式说明中按行分拆, 并未进行进一步提取. 打算以后在实际使用中进行改进. 也许"n. 苹果, 家伙"提取为:

{
词性: 名词
释义: ["苹果", "家伙"]
}

欢迎尝鲜.

2018-09-06 Java实现英汉词典API初版发布在Maven的更多相关文章

  1. 2018-12-16 VS Code英汉词典进化效果演示: 翻译文件所有命名

    续VS Code英汉词典插件v0.0.7-尝试词性搭配, 下一个功能打算实现文件的批量命名翻译: 批量代码汉化工具 · Issue #86 · program-in-chinese/overview ...

  2. 2018-12-25 VS Code英汉词典v0.0.8: 批量翻译文件部分命名

    续前文: VS Code英汉词典进化效果演示: 翻译文件所有命名 vscode"英汉词典"插件地址: 官方链接 现在实现的效果比之前的演示差很多, 因为executeDocumen ...

  3. 2018-12-03 VS Code英汉词典插件v0.0.7-尝试词性搭配

    续上文VS Code英汉词典插件v0.0.6-改为TS实现, 加测试后, 继续重构(提取常量, 避免var, 添加类型等等), 并完善测试. 测试方法参考: Testing Visual Studio ...

  4. 2018-11-29 VS Code英汉词典插件v0.0.6-改为TS实现, 加测试

    如前文VS Code英汉词典插件v0.0.4-驼峰下划线命名打算, 首先将JS源码改为TypeScript实现, 并添加了必要的测试. 昨天得知vue.js 3.0会用TypeScript实现, 正好 ...

  5. 2018-11-09 VS Code英汉词典插件v0.0.4-驼峰下划线命名

    首先, 在两天时间内安装数破百, 多谢支持. VS Code插件市场地址: 英汉词典 - Visual Studio Marketplace 开源库地址同前文: Visual Studio Code插 ...

  6. 2018-11-06 Visual Studio Code插件-英汉词典初版发布

    VS插件市场地址: 英汉词典 - Visual Studio Marketplace 开源在: program-in-chinese/vscode_english_chinese_dictionary ...

  7. 吴裕雄--天生自然python学习笔记:python 用firebase实现英汉词典进阶版

    用 post 方法创建的数据会自动产生一个 id (Key ),但有时也常常为了取得这个 id 而让程序难以处理 . 以英汉词典标准版来说,它的数据结构如下: 如果将每条数据都改为{eword:cwo ...

  8. 用java实现的英汉词典

    import java.io.*; import java.util.*; public class MyDictionary { static private Map<String, Stri ...

  9. linux 英汉词典程序shell+postgresql版

    在linux控制台下工作,有时候遇到不懂的单词,想要找个linux下的词典程序,搜寻无果,只好自己动手写个了. 首先获取词典文本文件,在github上找到一个 建立数据库 create databas ...

随机推荐

  1. netty入门(一)

    1. netty入门(一) 1.1. 传统socket编程 在任何时候都可能有大量的线程处于休眠状态,只是等待输入或者输出数据就绪,这可能算是一种资源浪费. 需要为每个线程的调用栈都分配内存,其默认值 ...

  2. 排序函数 sort() 和 高阶函数sorted()

    · sorted():该函数第一个参数iterable为任意可以迭代的对象,key是用于比较的关键字,reverse表示排序结果是否反转. · L.sort():该函数的三个参数和 sorted() ...

  3. ubuntu16.04 下鼠标变成十字形状无法点击情况解决

    出现这种问题的原因是把shell命令行终端当成了python环境,误输入了"import"命令. (当然如果你真的希望在shell中输入import指令除外...) 我自己想当然的 ...

  4. psnr的定义和python实现

    psnr是“Peak Signal to Noise Ratio”的缩写,即峰值信噪比,是一种评价图像的客观标准,它具有局限性,一般是用于最大值信号和背景噪音之间的一个工程项目. peak的中文意思是 ...

  5. 什么是SQL

    SQL是用于访问和处理数据库的标准的计算机语言 SQL是 访问 .处理数据库中的数据 ,这类数据库 包括Oracle, Sybase, SQL Server, DB2,Accesss等等 类型的数据库 ...

  6. 导入项目报错【Minimum supported Gradle version is 3.3. Current version is 2.14.1】

    问题描述 导入项目的时候,因为同事的开发环境是Android Studio 2.3.2  Gradle3.3.而我的开发环境是Android Studio 2.2.2 Gradle2.14.1. 所以 ...

  7. 西安活动 | 9月15号 "拥抱开源, 又见.NET" 线下交流活动

    随着.NET Core的发布和开源,.NET又重新回到了人们的视野.除了开源.跨平台.高性能以及优秀的语言特性,越来越多的第三方开源库也出现在了github上——包括ML.NET机器学习.Xamari ...

  8. 五分钟轻松了解Hbase面向列的存储

    说明:从严格的列式存储的定义来看,Hbase并不属于列式存储,有人称它为面向列的存储,请各位看官注意这一点. 行式存储 传统的数据库是关系型的,且是按行来存储的.如下图: 其中只有张三把一行数据填满了 ...

  9. PHP中的__call和__callStatic方法

    如何防止调用不存在的方法而出错,使用__call魔术重载方法. __call方法原型如下: mixed __call(string $name,array $arguments) 当调用一个不可访问的 ...

  10. 手把手在Ubuntu上面安装Docker

    一.环境准备 1.Ubuntu64位系统(目前docker仅支持64位系统) 2.官方支持的Ubuntu版本(1)Ubuntu Trusty 14.04(LTS)(2)Ubuntu Precise 1 ...