2013-08-17 51 views
0

我想將拼音(英文)作爲輸入並返回用戶可以選擇的漢字。我發現這已經在很多地方實現了(通過操作系統鍵盤和各種網站的支持),但是找不到一個庫來完成它。將漢語拼音轉換爲中文字符

或者甚至可能自己做,如果它不那麼複雜或需要大量的數據。

回答

0

最簡單的方法是使用javachinesepinyin,這是一種輕量級的中文拼音輸入法。 你可以找到相關的代碼here

private String[] pinyinToWord(String[] o) { 
    Result ret = null; 
    try { 
     ret = ptw.labelStateOfNodes(Arrays.asList(o)); 
    } catch (Exception ex) { 
     System.out.println(ex.getMessage()); 
    } 
    Map<Double, String> results = new HashMap<Double, String>(); 
    if (null != ret && ret.states() != null) { 
     for (int pos = 0; pos < ret.states()[o.length - 1].length; pos++) { 
      StringBuilder sb = new StringBuilder(); 
      int[] statePath = Viterbi.getStatePath(ret.states(), ret.psai(), o.length - 1, o.length, pos); 
      for (int state : statePath) { 
       Character name = ptw.getStateBy(state); 
       sb.append(name).append(" "); 
      } 
      results.put(ret.delta()[o.length - 1][pos], sb.toString()); 
     } 
     List<Double> list = new ArrayList<Double>(results.keySet()); 
     Collections.sort(list); 
     Collections.reverse(list); 
     return results.get(list.get(0)).trim().split(" "); 
    } 
    return null; 
} 

介紹幻燈片英文:http://docs.google.com/present/edit?id=0AbbbdNFzwcADZGR3Z3N0NG1fMTk4M2hraGZjNmRw&hl=en

現場演示:http://951438.appspot.com/pinyin.jsp?txt=zhongwenpinyinshurufa

如果需要先進的功能,也許你應該考慮使用Rime Input Method Enginesunpinyin

FYI,Python Binding for sunpinyin

相關問題