基于Linux平台Sunpinyin输入法探究和研究.docVIP

基于Linux平台Sunpinyin输入法探究和研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Linux平台Sunpinyin输入法探究和研究

基于Linux平台Sunpinyin输入法探究和研究   摘 要:在Windows操作系统中,谷歌、搜狗等多种拼音输入法因词库大、识别率高等优点,几乎已经成为装机必不可少的输入法。与之相比,虽然Linux不缺乏类似scim、fcitx的输入法平台,但仍很难找到得心应手的输入法。然而,Sunpinyin输入法的横空出世弥补了这个遗憾。本文首先对Sunpinyin输入法进行整体介绍[1];然后对Sunpinyin输入法引擎进行详细解读,并提出Sunpinyin输入法的优化设想;最后对将蒙古文与Sunpinyin输入法的融合做出了大胆构想。 关键词:Sunpinyin输入法;蒙古文;语言;信息处理 中图分类号:TP393.08 目前,虽然windows操作系统中各种各样的输入法争奇斗艳,但是Windows操作系统作为一种商业性的产品,它对外界是完全封闭[2]。我们都期盼输入法能的源代码能够允许所有的用户对其进行浏览、使用并且加以改进。Linux作为一种将源代码完全开放的Unix类操作系统,它的源代码的开放性以及技术的先进性,为我们提供了一个良好的应用平台。 1 Sunpinyin输入法的构成 Sunpinyin输入法的代码总共包括了后端(src/slm)、前端(src/ime-core)和语言模型(wrapper)三个部分。其中,src/slm目录下存放的是统计语言模型代码,src/ime-core目录下存放的是和输入法相关的一些接口,而各个输入法平台的前端则存放在wrapper目录下。 SunPinyin 输入法的后端即是输入法引擎,它的主要作用是负责SunPinyin输入法的算法并提供最基本的输入法功能,在GNU/Linux上它是以动态链接库的形式存在的。SunPinyin 输入法的前端是输入法的内核和输入法平台的交互界面。SunPinyin 输入法的语言模型由一些数据文件构成,其中包含了我们所熟悉的词库等数据。 2 SunPinyin输入法引擎 2.1 ime部分的概念模型 SunPinyin输入法ime部分的概念模型包括如图1所示的几部分。 其中,位于ime/src/slm目录中的Static SLM部分存放的是访问统计语言模型的代码,位于ime/src/lexicon目录中的Lexicon部分存放的是拼音词表的代码。在View部分中,由Window-Handler接收用户的输入后通过发送call-back(回调)命令,将pre-edit string和candidates返回给Window-Handler用来显示。另外,拼音串的切分是在音节切分器部分使用Lexicon完成的[3]。而历史输入缓存部分的功能是使用一个类Bigram的模型来记录用户最近提交的句子。 2.2 SunPinyin输入法的数据结构及核心算法 早先的SunPinyin组织search lattice的方式是通过使用CBone/Cskeleton进行的,每一个Bone对应一个syllable。SunPinyin 的最新版本SunPinyin2为了加强对模糊切分的支持,lattice采用以单个的拼音字符为单位用来取代以syllable为单位。SunPinyin2中定义了一个CLattice的类对应于原来的CSkeleton,用来表示整个的search lattice。同时,为了对应于原来的CBone/CBoneInnerData,将每一个列称为一个CLatticeFrame。SunPinyin2还在TlexiconState中加入了一些类似m_syls 和m_words等相应的字段已达到支持用户词典的效果。 2.3 用户词典 之前的SunPinyin只是通过用户历史缓存记录用户最近输入的bi-gram信息,并没有应用用户词典。假如出现一个bi-gram的概率比系统词典中的某个uni-gram的概率低的情况,它将不会出现在用户的候选列表中。例如,即使用户频繁的输入即期,但是“机器”这个unigram的概率更高些,所以它很难出现在候选列表中。假如“即期”这个词出现在了候选中,那么它就一定会是第一候选,会有这种情况的发生是因为它是以一个最佳候选句子的形式来呈现给用户的。一旦用户选择了“机器”,将会很难预测“即期”这个词多久出现,此缺陷也是广受用户诟病的。 3 Sunpinyin输入法的优化构想 虽然SunPinyin对于广大用户来说是一款非常实用的输入法,但目前SunPinyin2还没有能够重新实现微软拼音的输入风格并且现有的 Sunpinyin输入法的配置项还比较分散。另外,当前的SunPinyin输入法的拼音切分部分代码中的start的信息是冗余的。现有的CIMI

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档