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 Engine或sunpinyin。