`
san_yun
  • 浏览: 2676824 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

开源中文输入法汇总

    博客分类:
  • nltk
 
阅读更多

原文:http://www.cnblogs.com/Lvkun/archive/2012/12/27/open-source-input-method.html

 

开源中文输入法

在Windows上面中文拼音输入法数不胜数。简单数了一下自己用过,就有六种以上:

  • 智能ABC
  • 微软拼音
  • 紫光拼音
  • 搜狗输入法
  • 谷歌输入法
  • QQ输入法
  • ......

可参考wikipedia 中文输入法列表,以及小众软件 我最喜欢的《拼音输入法》。在手机端各种拼音输入法种类更多。

而在Unix和Linux平台上也存在不少中文输入法,它们不仅免费,而且开源。如果想要了解输入法的实现,不妨从它们入手。

输入法大致可分为三部分:

  1. 输入法框架
  2. 输入法引擎
  3. 输入法界面

关于输入法结构的介绍,可以参见这篇文章Packaging Input Method Framework and Engines

输入法框架

Windows系统提供统一的输入法框架,在Windows XP和之前版本是IMM(Input Method Manger),之后是TSF(Text Service Framework)。搜狗,谷歌,QQ等输入法都是在IMM框架下面实现了引擎和界面。而Linux下面输入法框架并不统一,这给兼容性带来很大问题。

IBus

Intelligent Input Bus。相对较新。使用C和Python开发。

特点:

  • 输入法引擎可以按需加载\卸载
  • 支持系统托盘(Systray)
  • 支持XKB
  • 配置更改即可生效
  • 提供C和Python的绑定

提供以下拼音输入法引擎:

  • ibus-pinyin IBus主要开发者开发的
  • ibus-googlepinyin 由Android项目移植过来

Scim

Smart Common Input Method。历史比较悠久,曾作为多数Linux发行版默认的中文输入法。使用C++开发。

特点:

  • 使用C++编写,完全面向对象。
  • 高度模块化。
  • 非常灵活的架构,即可以用作动态加载的库,也可以作为C/S输入法环境。
  • 简单的编程接口。
  • 完全支持i18n,及UCS-4/UTF-8编码
  • 包含很多方便实用的函数来加速开发
  • 特性非常丰富的GUI Panel
  • 统一的配置框架

提供以下拼音输入法引擎:

  • scim-ccinput
  • novel-pinyin
  • scim-pinyin
  • fitx
  • scim-sunpinyin

Fcitx

小企鹅输入法,Free Chinese Input Toy for X。

特点:

  • 支持主题(Theme)
  • 支持系统托盘(Systray)
  • 支持Kimpanel
  • 支持KDE配置模块
  • 全局简繁转换

提供以下拼音输入法引擎:

  • fcitx-pinyin
  • fcitx-sunpinyin
  • fcitx-googlepinyin

Rime

全名中州韵输入法,不仅仅是一个输入法,而是一个输入法算法框架。 非常有创意地通过YAML格式的配置文件,定制输入法。参见RimeWithSchemata

Rime 是一款强调个性的输入法。 Rime 不要定义输入法应当是哪个样、而要定义输入法可以玩出哪些花样。 Rime 不可能通过预设更多的输入方桉来满足玩家的需求;真正的玩家一定有一般人想不到的高招。

它支持主流操作系统:

  • Linux: 中州韵 ibus-rime
  • Windows: 小狼毫 Weasel
  • Mac OS X: 鼠须管 Squirrel

输入法引擎

除了输入法框架自带的pinyin输入法引擎,sunpinyinlibgooglepinyin比较常用。

sunpinyin

sunpinyin是基于统计语言模型(Statistical Language Model)输入法引擎。支持上述的三个输入法框架。 Mac下面的FIT输入法也将sunpinyin作为输入法引擎。参见FIT携手sunpinyin

SunPinyin是由Sun中国工程研究院的北京国际化中心开发,并贡献给开源社区的。最初由张磊(Phill.Zhang)博士独立完成,后来 由众多的社区开发者共同推进,目前的版本是2.0.x。支持整句输入,能够记录用户的词汇和语言模型,从而训练出更适合你的输入法。

在Google code的项目的wiki上面,有三篇非常详细的代码导读系列文章,可以让有兴趣的人能有相对深入了解的途径。 很少能看到类似关于拼音输入法引擎如何实现的文章。

libgooglepinyin

Google pinyin Android 版本(注意不是桌面版本)是曾经开源的,但从2009年后就再未更新。libgooglepinyin就是从这个版本移植过来的。同样的项目还有scim-googlepinyinfcitx-googlepinyin

Github上还有反向工程版本com.google.android.inputmethod.pinyin

分享到:
评论

相关推荐

    Android平台输入法源码汇总

    OpenWNN是其中一种流行的开源日文输入法,它的源码包含了许多输入法设计的关键技术。例如,OpenWNN实现了词库管理,支持日语的平假名、片假名和汉字之间的转换,以及智能预测功能。这些技术可以被扩展到其他语言的...

    Android开源项目汇总

    在本资源包中,我们收集了一系列的Android开源项目,这些项目涵盖了从基础应用到复杂游戏开发的多个领域,为开发者提供了丰富的学习和实践材料。以下是对每个文件的详细解析: 1. **Android开源项目源码.doc**:这...

    基于Android平台的新闻客户端的设计与实现汇总.pdf

    "基于Android平台的新闻客户端的设计与实现汇总" 该文档详细介绍了基于Android平台的新闻客户端的设计与实现,涵盖了从开发背景到系统分析与设计流程的方方面面。下面是从该文档中提炼出来的知识点: 一、开发背景...

    eclipse快捷键汇总

    ### Eclipse 快捷键汇总详解 #### 一、概述 Eclipse是一款非常强大的开源集成开发环境(IDE),广泛应用于Java程序开发中。掌握Eclipse的快捷键能够显著提高开发效率,减少鼠标操作,使得开发者更加专注于编码本身...

    android API 合集

    ### Android API 合集知识点详解 #### 一、概述 Android API 合集是指一系列针对Android平台开发的应用程序接口(Application ...此外,中文翻译组的工作也展示了社区的力量,以及开源精神如何促进技术的发展和进步。

Global site tag (gtag.js) - Google Analytics