Java實現英漢詞典API初版發佈在Maven 2018-09-06

在打算批量代碼漢化工具 · Issue #86 · program-in-chinese/overview時, 發現沒有現成的Java庫實現英漢查詢功能. 於是開此項目.

源碼庫: program-in-chinese/english-chinese-dictionary

API使用中文命名. 源碼也是.
2018-09-06 at 11.03.30 PM_java_ecdict_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. 蘋果, 傢伙"提取爲:

{
詞性: 名詞
釋義: ["蘋果", "傢伙"]
}

歡迎嚐鮮.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章