折腾词库,一个词库互转程序

我在之前写过一个小程序,用于实现QQ拼音、搜狗拼音、谷歌拼音和百度手机拼音输入法词库的互转,文章地址是:http://www.cnblogs.com/studyzy/archive/2009/12/31/1637030.html

本来我只是出于从将个人的词库从QQ拼音导入到搜狗拼音中,随手写的个小程序,结果哪知道原来大家都有和我类似的需求,希望实现各种输入法词库的相互转换;另外现在智能手机越来越多,在手机上的输入法也竞争相当激烈,QQ手机拼音、搜狗手机拼音、百度手机拼音等输入法都出来的,有些手机输入法也支持词库的导入导出,所以也用得到我这个词库互转程序。最近又有人提出,希望将搜狗的细胞词库和QQ的分类词库转换成其他输入法的词库,这个功能也很有必要,所以我打算继续折腾这个程序,将词库转换的范围继续扩大!

经过两天的努力,终于完成了我的词库转换小工具,将现有词库的以文本格式导出,然后选择源词库格式和新词库格式,单击“转换”按钮即可词库格式的转换。放出程序截图如图所示:

image

目前我这个转换小工具还只支持纯文本格式的词库,因为对于搜狗细胞词库(scel格式)和QQ分类词库(qpyd格式)我没有具体的解析这些词库的算法或者程序集,所以无法解析成文本并进行转换。如果大家谁知道怎么解析搜狗细胞词库和QQ分类词库的话还希望不吝赐教!

如果希望将搜狗细胞词库导入到谷歌拼音中,该怎么实现呢?首先需要到官方网站去下载txt格式的细胞词库,该词库中只有词条,没有拼音!选择该txt文件,然后选择“搜狗细胞词库Txt”作为转换源,以谷歌拼音作为目标格式即可!

image

对于没有拼音的文本词库,程序会找到每个字的拼音,自动生成带拼音的词库,这里面有一个问题是出现多音字怎么办?我在高级设置中给出了一个“忽略多音字”的选项,默认是选中的,所以会导致很多词的拼音是错误的,比如“音乐”会被拼写成“yin le”,因为乐是多音字,只取了其一个音“le”。如果取消了“忽略多音字”选项,那么所有的多音字的拼音就都会出现在词库中,形成词条中多音字的所有组合,如图所示:

image

本来1895个词条,经过多音字的组合,就变成了7597条!这样导致词库变得太大,而且输入法处理起来也困难,所以不建议使用。对于词条中多音字的处理不知道大家还有没有更好的办法能够获得一个词的准确拼音,不要将“音乐”变成“yin le”了。

另外我还设置了词条长度的筛选功能,将单个字的词条、长度大于指定长度的词条都筛选掉,不进行转换。

现在这个程序功能还很弱,只支持:百度手机、QQ手机、搜狗拼音、搜狗五笔、QQ拼音、谷歌拼音、搜狗细胞词库Txt,仍然有以下问题有待解决:

  • 如何解析搜狗细胞词库scel格式和QQ分类词库qpyd格式?
  • 如何获得QQ分类词库的Txt格式?
  • 如何获得一个词条的准确拼音?
  • 搜狗手机输入法好像不支持本地词库导入,电脑上的词库就没办法导入到其中了?
  • 支持更多的输入法类型的词库。

我已经将程序代码放到Google Code中,有兴趣的可以看看,地址:http://code.google.com/p/imewlconverter/

 

这里放出可执行文件,方便有同样需求的人来一起折腾词库,下载地址:/Files/studyzy/深蓝词库转换小工具-v1.0.zip

【出自博客园深蓝居,转载请注明作者出处】
标签: 词库, 转换
posted @ 2010-03-02 20:41 深蓝 阅读(9324) 评论(14) 编辑 收藏

 回复 引用 查看   
#1楼 2010-03-02 22:49 飞鸽传书      
很不错,谢谢。
 回复 引用 查看   
#2楼 2010-06-29 17:10 maojie      
太帅了。。。找到软件的原作者了,来膜拜一下~~
 回复 引用 查看   
#3楼[楼主] 2010-06-30 20:43 深蓝      
@maojie
想不到我写的小东西还有人用。无心插柳而已。有没有什么好的建议,我可以进一步改进一下这个小程序?

 回复 引用 查看   
#4楼 2010-07-01 17:36 maojie      
我把具体的情况发你邮箱里了,请查收
 回复 引用 查看   
#5楼[楼主] 2010-07-02 00:47 深蓝      
@maojie
我更新了版本,支持搜狗细胞词库scel格式的导入了

 回复 引用 查看   
#6楼 2010-07-11 20:58 Amore      
这几天正在愁换输入法以后字库的问题,找到你这里了,呵呵,多谢作者,特来膜拜,只是搜狗无论手机还是PC现在的词库都是bin格式的,不是以前的txt了啊,貌似不支持了,不知道作者能不能改进一下,多谢了
 回复 引用 查看   
#7楼[楼主] 2010-07-12 01:26 深蓝      
@Amore
PC上的搜狗输入法是支持txt格式的用户词库导出的!当然也可以导入txt格式的词库。所以没有考虑去解析bin格式的词库文件。

 回复 引用 查看   
#8楼 2010-07-14 10:07 鼠熙      
应用程序正常初始化(0xc0000135)失败……
 回复 引用 查看   
#9楼 2010-07-19 00:08 Amore      
@深蓝
的确是这样呢,呵呵,刚刚才发现,多谢指教

 回复 引用 查看   
#10楼 2010-07-19 00:09 Amore      
@鼠熙
0xc0000135错误是由于软件运行时需要微软的.Net Framework环境,而当前系统中又没有安装该组件就会出现软件不能运行的错误,一般都会报告0xc0000135这个错误代号。只要下载安装.Net Framework组件即可解决问题,不过,不同的软件对.Net Framework组件版本的要求不一样,一般新的软件安装最新版即可(下载地址: http://www.newhua.com/soft/34491.htm)。

 回复 引用 查看   
#11楼 2011-02-04 19:30 cooppe      
qq转手机百度没有回车
 回复 引用 查看   
#12楼 2011-08-18 21:31 愚人陈      
想知道如何转换搜狗系统词库,
想转给linux里面的输入法用...


不知道博主是否研究过搜狗系统词库~

 回复 引用 查看   
#13楼 2012-01-05 15:57 sincera      
能否支持转换搜狗细胞词库为微软拼音2010,谢谢
 回复 引用 查看   
#14楼 2012-01-09 14:54 shenopkss      
您好博主,请问,怎么能拿到搜过的明文词库?

我要啦免费统计