Java实现英汉词典API初版发布在Maven
在打算批量代码汉化工具 · 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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
浏览器插件实现GitHub代码翻译原型演示
此原型源自此想法: 中文化源码. 考虑到IDE插件工作量较大, 且与IDE绑定. 在代码转换工具的各种实现中, 综合考虑实用+易用+长远改进潜力, 浏览器插件似乎较有优势. 于是用最快捷的方式实现这一想法. 注: 此演示仅用Chrome在一个命名比较简单的代码页https://github.com/swaroopch/byte-of-python/blob/master/programs/ds_using_list.py 运行过, 限于取代码块的简单方式(取页面中的table元素)以及內建词典, 其他浏览器/github代码页的效果不保证. 原型项目源码在: program-in-chinese/webextension_github_code_translator 在Chrome下加载此插件后, 点击工具栏中的按钮(竟然默认图标是个'G', 也许是"Github代码翻译原型"的首字母). 弹窗中就会显示翻译后的代码段. 就这样: 项目源码节选 对代码段的文本进行简单替换: function 翻译() { var 原代码拷贝 = document.getElementsByTagNam...
- 下一篇
代码翻译尝试-使用Roaster解析和生成Java源码
此文是前文使用现有在线翻译服务进行代码翻译的体验的编程语言方面第二点的一个尝试. 参考Which framework to generate source code ? - Cleancode and Refactoring, 选了一个综合代价看来最小的, forge/roaster, 因为它同时具备解析和生成两方面功能. 初步汉化后代码效果如下(尚未有语法高亮, 仅作演示用. 之后的在线翻译结果也是同样处理): package com.company.example; import java.io.Serializable; public class 人 implements Serializable { private static final long serialVersionUID = 1L; private final 整型 号; private 字符串 全名; public 整型 get号() { return 号; } public 字符串 get全名() { return 全名; } public void set全名(字符串 全名) { this.全名 = 全名; ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16