我想以拼音(英文)作为输入并返回用户可以选择的汉字。我看到这已经在很多地方实现了(操作系统键盘和各种网站的支持),但是找不到一个库来做到这一点。
如果它不是那么复杂或需要大量数据,甚至可能自己做。
我想以拼音(英文)作为输入并返回用户可以选择的汉字。我看到这已经在很多地方实现了(操作系统键盘和各种网站的支持),但是找不到一个库来做到这一点。
如果它不是那么复杂或需要大量数据,甚至可能自己做。
最简单的方法是使用javachinesepinyin,这是一种轻量级的中文拼音输入法。你可以在这里找到相关的代码。
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。
仅供参考,用于 sunpinyin 的 Python 绑定。