打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
根据用户输入的拼音生成相应的汉字

 

 

刚在网上查了,有PinYin4j可以将汉字转为拼音。但怎么将拼音转换为(匹配出)汉字呢?

 

http://www.cnblogs.com/ATGO/archive/2008/05/15/1198624.html这个大牛把汉字都搞了个id。。可以下载看看
http://files.cnblogs.com/ATGO/ProjectPinYinHanZi.rar
里面有PinYinHanZi.xml ,,,如下(一部分):
 <PY>
  <ID>1</ID>
  <HANZI>
</HANZI>
  <PINYIN>a</PINYIN>
  </PY>
  <PY>
  <ID>2</ID>
  <HANZI>
</HANZI>
  <PINYIN>a</PINYIN>
  </PY>
  <PY>
  <ID>3</ID>
  <HANZI>
</HANZI>
  <PINYIN>a</PINYIN>
  </PY>
  <PY>
  <ID>4</ID>
  <HANZI>
</HANZI>
  <PINYIN>a</PINYIN>
  </PY>

 

可以猜想一下,google等拼音输入法肯定有某个模块负责对字符的解析、匹配。
所以肯定留了一些接口。
是否可以试试通过JNI调用这些本地方法? //这个算是比较靠谱(但是不清楚接口)

 

 

拼音输入法来说,使用的都是词库。这个并不难实现,实际上都是有拼音到词的转换,如果需要你可以下载一些回来。只是同一个拼音会有一堆词而已,


如果你需要,你可以下载一些公开词库格式的输入法让它生成一份给你
例如:你下载极点五笔输入法,它有导出拼音词库的功能。导出的词条都有150000条了。

 

 

大家说的越来越接近问题的关键了:
1
23L说的XML文件,对于小型的系统可行,但是大的呢?您要考虑使用什么解析方式,还有需要专人来写,需求有改动的话改也不好改。
2
24L说的Google 的这些接口肯定是有的,但是具体在哪儿呢?我搜了,还是找不到。就像上次,我找他们Url的编码格式,网上说法一大堆,终没有一个统一的
3
26L说的导出拼音词库,我正在找。。。。
谢谢大家,继续等贴!

 

 

http://code.google.com/p/javachinesepinyin/
这是一个中文拼音输入法的Java实现,基于HMM模型,无词典,能完成拼音转汉字,和汉字转拼音的任务,并结合Edit Distance使其具有中文输入纠错功能。
下载一个试试

 

 

 

1, 调用输入法的本地接口

2,  调用输入法的远程接口(WEBAPI

例如:搜狗云输入法

 

http://www.keakon.net/2009/11/03/%E6%90%9C%E7%8B%97%E4%BA%91%E8%BE%93%E5%85%A5%E6%B3%95API

昨天搜狗推出了云输入法,不过没去研究,今天闲得蛋疼,就又来玩了。

首先是看源代码,一眼就看到:http://web.pinyin.sogou.com/web_ime/init2_utf8.php
于是打开来,发现是加密过的JavaScript代码,懒得去研究,还是直接抓包吧。

于是启动Firefox,用Live HTTP Headers查看了一下,便发现了这种地址:http://web.pinyin.sogou.com/web_ime/get_ajax/duziele.key
用浏览器打开一看,结果是:

ime_query_res="%E8%82%9A%E5%AD%90%E9%A5%BF%E4%BA%86%EF%BC%9A7%09+%E8%82%9A%E5%AD%90%E9%A5%BF%EF%BC%9A5%09+%E8%82%9A%E5%AD%90%EF%BC%9A4%09+%E7%8B%AC%E8%87%AA%EF%BC%9A4%09+%E7%8B%AC%E8%B5%84%EF%BC%9A4%09+%E7%8B%AC%E5%AD%90%EF%BC%9A4%09+%E7%8A%8A%E5%AD%90%EF%BC%9A4%09+%E8%B5%8C%E8%B5%84%EF%BC%9A4%09+%E6%AF%92%E8%B5%84%EF%BC%9A4%09+%E6%9D%9C%E6%A2%93%EF%BC%9A4%09+%E6%9D%9C%E5%AD%97%EF%BC%9A4%09+%E8%82%9A%E4%BB%94%EF%BC%9A4%09+%E5%BA%A6%EF%BC%9A2%09+%E8%AF%BB%EF%BC%9A2%09+%E9%83%BD%EF%BC%9A2%09+%E7%8B%AC%EF%BC%9A2%09+%E6%AF%92%EF%BC%9A2%09+%E6%9D%9C%EF%BC%9A2%09+%E6%B8%A1%EF%BC%9A2%09+%E8%B5%8C%EF%BC%9A2";ime_query_key="duziele";

一看就知道是URL编码,于是拿出Python开始解码:

>>> from urllib2 import unquote

>>> ime_query_res="%E8%82%9A%E5%AD%90%E9%A5%BF%E4%BA%86%EF%BC%9A7%09+%E8%82%9A%E

5%AD%90%E9%A5%BF%EF%BC%9A5%09+%E8%82%9A%E5%AD%90%EF%BC%9A4%09+%E7%8B%AC%E8%87%AA

%EF%BC%9A4%09+%E7%8B%AC%E8%B5%84%EF%BC%9A4%09+%E7%8B%AC%E5%AD%90%EF%BC%9A4%09+%E

7%8A%8A%E5%AD%90%EF%BC%9A4%09+%E8%B5%8C%E8%B5%84%EF%BC%9A4%09+%E6%AF%92%E8%B5%84

%EF%BC%9A4%09+%E6%9D%9C%E6%A2%93%EF%BC%9A4%09+%E6%9D%9C%E5%AD%97%EF%BC%9A4%09+%E

8%82%9A%E4%BB%94%EF%BC%9A4%09+%E5%BA%A6%EF%BC%9A2%09+%E8%AF%BB%EF%BC%9A2%09+%E9%

83%BD%EF%BC%9A2%09+%E7%8B%AC%EF%BC%9A2%09+%E6%AF%92%EF%BC%9A2%09+%E6%9D%9C%EF%BC

%9A2%09+%E6%B8%A1%EF%BC%9A2%09+%E8%B5%8C%EF%BC%9A2"

>>> print unicode(unquote(ime_query_res), 'utf8')

肚子饿了:7     +肚子饿:5      +肚子:4        +独自:4        +独资:4

+独子:4        +犊子:4        +赌资:4        +毒资:4        +杜梓:4

+杜字:4        +肚仔:4        +度:2  +读:2  +都:2  +独:2  +毒:2  +杜:2

+渡:2  +赌:2

这就是输入“duziele”显示的结果。

因此你应该猜到了,想查任意拼音的话,就用这个地址:http://web.pinyin.sogou.com/web_ime/get_ajax/想查的拼音.key

当然你可能没有Python,那么浏览器总有吧,于是用JavaScript也能搞定。
在地址栏输入下面的代码并回车:

javascript:alert(decodeURIComponent("%E8%82%9A%E5%AD%90%E9%A5%BF%E4%BA%86%EF%BC%9A7%09+%E8%82%9A%E

5%AD%90%E9%A5%BF%EF%BC%9A5%09+%E8%82%9A%E5%AD%90%EF%BC%9A4%09+%E7%8B%AC%E8%87%AA

%EF%BC%9A4%09+%E7%8B%AC%E8%B5%84%EF%BC%9A4%09+%E7%8B%AC%E5%AD%90%EF%BC%9A4%09+%E

7%8A%8A%E5%AD%90%EF%BC%9A4%09+%E8%B5%8C%E8%B5%84%EF%BC%9A4%09+%E6%AF%92%E8%B5%84

%EF%BC%9A4%09+%E6%9D%9C%E6%A2%93%EF%BC%9A4%09+%E6%9D%9C%E5%AD%97%EF%BC%9A4%09+%E

8%82%9A%E4%BB%94%EF%BC%9A4%09+%E5%BA%A6%EF%BC%9A2%09+%E8%AF%BB%EF%BC%9A2%09+%E9%

83%BD%EF%BC%9A2%09+%E7%8B%AC%EF%BC%9A2%09+%E6%AF%92%EF%BC%9A2%09+%E6%9D%9C%EF%BC

%9A2%09+%E6%B8%A1%EF%BC%9A2%09+%E8%B5%8C%EF%BC%9A2"))


虽然该API似乎没有查referercookie等字段(可能是出于效率考虑),但由于不是JSNOP格式的,没法直接用AJAX调用,所以最方便的方法是使用YQL,将其转换成JSONP,只是这样速度会慢很多。

我就懒得去做个山寨输入法了,感兴趣的可以自己去试试~

 

//非官方的搜狗云输入法 API

ibus-sogoupycc 做得更加完整
http://code.google.com/p/ibus-sogoupycc/

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python 中文排序(按拼音)
150部卫生部医学视听教材全部光盘
已知AB=5,BC=11,∠A=3∠C,求AC的长度
[全等三角形证明题]全等三角形证明经典50题(含答案)
全等三角形证明经典50题含答案
初中数学一题多解题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服