前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >各大输入法分类词库内部格式的简单比较

各大输入法分类词库内部格式的简单比较

作者头像
深蓝studyzy
发布2022-06-16 14:55:22
9280
发布2022-06-16 14:55:22
举报
文章被收录于专栏:深蓝居

之前一直利用闲暇时间做深蓝词库转换,对各大输入法的分类词库有了一些大概的了解,下面来比较下各个词库格式的特点:

1.搜狗细胞词库scel格式

scel格式是采用Unicode编码了汉字、拼音。整个scel格式的内容是:头信息、词库简介、拼音组合列表、词条列表。scel格式的词条的数据结构设计的还是比较好的,它使用了拼音指针来避免在词条中出现重复的拼音来占据内容,也会把同音词合并在一起,节省空间。基本结构如下:

该拼音对应的词条数、拼音指针、词条列表。

2.QQ分类词库qpyd格式

qpyd格式是我一直很头疼的格式,原来是采用了zip压缩词条列表。qpyd格式的内容是:头信息、词库简介、压缩的词条列表。qpyd格式由于采用了zip压缩,所以在同样词条数的情况下,整个文件会显得比其他格式的词库小。但是与搜狗的scel格式不同的是,qpyd格式中,每个词条都对应了其拼音,词语是使用UTF8编码,但是拼音是使用Unicode编码,真是很奇怪。

3.百度分类词库bdict格式

百度的bdict格式算是比较简单的,它其实和搜狗的scel格式很相似,主要不同是使用了默认的声母和韵母列表,而不是写在词库文件中。整个bdict格式的内容是:头信息、词库简介、词条列表,词条中的汉字是使用Unicode编码。词条列表的内部格式如下:

拼音长度、(分母序号、韵母序号)列表、词语

这里的分母序号和韵母的序号是在词库中找不到的,需要通过几个实际的bdict词库解析,一个个的归纳出来。

4.紫光分类词库uwl格式

uwl格式的词库并不是很多,所以我现在还不支持对该词库格式的转换,但是使用了WinHex大概看了下,该格式的词库和scel也比较类似,没有使用压缩,但是编码上好像UTF8和Unicode的都有,词条之间的距离很稀疏,也就是说在文件中,词条和词条间有很多0000,实在是浪费空间。

5.触宝备份词库bak格式

触宝输入法的备份文件格式是我觉得数据结构上最复杂的,里面使用的是一个树结构来表示。树结构中的上一层节点和下一个节点还是双向指针,我花了很多的时间来解读,终于能够实现对该文件的解析,但是有些字节不明白是什么意思,没办法根据词库生成对应的bak文件。触宝使用的是Unicode编码来保存汉字,拼音和bdict做的有点类似,也是用的默认的拼音列表,不同之处是,触宝没有将分母和韵母分开,而且把声韵母的组合作为一个列表。

总结下:

这几种词库格式中,感觉scel是比较清晰的,也比较节约空间,而且容易理解,如果能够像QQ词库那样压缩的话,就更节省空间了。qpyd格式把每个词的每个拼音都记录在词后面,实在是浪费空间,还不如scel格式这样方便,而且拼音和汉字使用了2中编码,真是没必要吧。bdict格式把声母和韵母拆开,以默认列表进行检索,这样也比较好,空间利用已经比较充分。紫光的uwl格式就实在不敢恭维,里面充斥着大量的0000,实在太浪费空间了。触宝词库备份文件数据结构太复杂太复杂,一般难以理解。

若要了解具体每种格式的解析办法,可以参加我的项目代码,项目地址:http://code.google.com/p/imewlconverter/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2012-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档