増井俊之の「界面潮流」

「界面」=「インタフェース」。ユーザインタフェース研究の第一人者が、ユビキタス社会やインターフェース技術の動向を読み解く。

第54回 マイIME

2011年4月15日

(これまでの増井俊之の「界面潮流」はこちら

パソコンで日本語を入力する方法については長い研究開発の歴史があります。日本で最初のワープロのためにかな漢字変換方式が考案されたのをはじめとして、様々な種類の日本語入力手法が開発されてきました。

現在のパソコンで日本語入力するときは「Microsoft IME」「ことえり」「ATOK」などの日本語入力システムが広く使われています。これら以外にも各種の日本語入力システムが提案されたり販売されたりしていますが、その種類はあまり多いとはいえず、普通のユーザにとって選択の余地は大きくないのが現状です。

かな漢字変換システムのような高度な自然言語処理システムを作成するのは困難だということが、パソコンの日本語入力システムの種類が少ないことの最大の理由だと思われますが、日本語入力システムをパソコンに組み込むこと自体が難しいという点も大きな理由のひとつだと考えられます。WindowsやMacのアプリケーションを作るための資料は沢山公開されていますが、日本語入力システムを作るための情報は多くありませんし、サンプルソースもほとんど存在しません。仮に面白い日本語入力手法を思いついたとしても、それをパソコンに組み込むのに苦労するのであれば、なかなか実装を試みる気にならないでしょう。

しかし最近のMacでは「IMKit」や「MacRuby」などのシステムが利用できるようになったので、IME作成のハードルが非常に低くなってきました。

IMKit

2007年に発売された「Mac OS Leopard」ではIMKit(Input Method Kit)というライブラリが新たに導入され、様々な言語の入力システムを以前よりも容易に作成できるようになりました。昔のパソコンは入力システムの仕様が複雑だったり公開が不充分だったりすることがありましたが、IMKitは仕様がシンプルであり、利用サンプルが公開されているため、入力システムの開発が従来に比べて非常に楽になりました。Mac用の「Google日本語入力」「Social IME」「AquaSKK」のようなサードパーティソフトウェアもIMKitを利用して実装されています。

IMKitによってMacの日本語入力システムの作成は容易になりましたが、IMKitはObjective-Cのライブラリなので、開発にあたってはObjective-Cのプログラミングに精通している必要があります。また、Objective-Cで文字列処理を行なうのはあまり簡単でないため、日本語入力システムのようにテキスト処理が多いプログラムを書くのは楽ではありません。しかしこのような問題はMacRubyの導入により解決します。

MacRuby

プログラミング言語「Ruby」が近年広く利用されるようになってきていますが、RubyをMacプログラミングに特化した「MacRuby」というシステムが便利に使えるようになってきました。MacRubyは、Objective-Cを利用できるようにRubyを改造したシステムです。Macのアプリケーションを作成するためにはObjective-Cでプログラムを記述し、Objective-Cで書かれたライブラリを利用する必要がありましたが、MacRubyを利用すると、普通のRubyプログラムからMacのObjective-Cライブラリを利用することができるため、RubyだけでMacのアプリケーションを作成することができます。

下図は、ボタンを押すと「Hello, World!」という声が出るアプリケーションのMacRubyプログラムと実行例です。Macの音声合成ライブラリである「NSSpeechSynthesizer」のようなものをRubyから呼び出しています。



ボタンを押すと声が出るプログラム

Interface Builder

前の例ではウィンドウのサイズや位置などをテキストで指定しているのでプログラムが長くなっていますが、「Interface Builder」というシステムを利用すると、ウィンドウの初期化や配置といった面倒な作業をGUIで指定することができます。

Interface Builderは、EclipseやVisualStudioのような最近のグラフィカルな開発環境の草分けで、ウィンドウやボタンのようなGUI部品を画面上に配置することによってアプリケーションの見栄えを設計することができます。現在のMacでは「XCode」というグラフィカル開発環境でInterface Builderを利用できるようになっていますが、XCodeはMacRubyのプログラミングにも利用することができるので、画面配置などをInterface Builderにまかせることができます。

Gyaim

MacRubyはMacのあらゆるライブラリを扱うことができるので、IMKitも利用することができます。

つまり、Interface Builderでグラフィカルに画面を配置し、MacRubyからIMKitを扱うプログラムを書くことによって、Macの日本語入力システムを手軽に作れてしまうことになります。この方式で、Gyaimという入力システムを試作してみました。ソースコード動画デモも公開しています。


Gyaim使用例

Gyaimの動作は非常に単純です。「a」から「z」のキーが押された場合はローマ字入力だと判断して辞書検索を行ない、マッチしたものを候補としてウィンドウに表示します。スペースキーかバックスペースキーが押された場合は候補の並べ変えを行ない、リターンキーが押されると先頭の候補をカーソル位置に入力します。恐ろしく単純な仕組みですが、それでもとりあえず日本語入力を行なうことができます。

単語の検索、候補の並べ変えなどはすべてRubyで記述しているので、ローマ字かな変換部を除くとプログラムは300行ぐらいしかありません。入力システムといえば極めて複雑なものだという印象がありましたが、ある程度実用的なIMEをこの程度のプログラミングで作れるようになったことは画期的です。複雑な変換アルゴリズムや入力手法を試してみることもできますし、見栄えを変えるのも簡単です。Rubyプログラムを少し書くだけで自分だけのIMEを簡単に試してみることができるようになるわけです。

最近のMacは、従来型のUnixのプログラミング環境が利用できることに加え、XCodeのようなグラフィカルな開発システムを利用できるので開発システムとして優れていましたが、RubyでアプリケーションでもIMEでも作れてしまうようになったため、プログラマにとってさらに面白い環境になってきたといえるでしょう。

沢山のプログラマがMacRubyを利用して、IMEをはじめとする面白いシステムを量産してほしいものだと思います。

フィードを登録する

前の記事

次の記事

増井俊之の「界面潮流」

プロフィール

1959年生まれ。ユーザインタフェース研究。POBox、QuickML、本棚.orgなどのシステムを開発。ソニーコンピュータサイエンス研究所、産業技術総合研究所、Apple Inc.など勤務を経て現在慶應義塾大学教授。著書に『インターフェイスの街角』などがある。

過去の記事

月間アーカイブ

ブログ一覧

  • Autopia
  • Compiler
  • Cut up Mac
  • Danger Room
  • Epicenter
  • from Wired Blogs
  • Gadget Lab
  • Intel International Science and Engineering Fair (Intel ISEF)
  • IPTVビジネスはどのようにデザインされるか
  • Listening Post
  • Web2.0時代の情報発信を考える
  • Wired Science
  • yah-manの「イマ、ウェブ、デザイン、セカイ」
  • yomoyomoの「情報共有の未来」
  • それは現場で起きている。
  • ガリレオの「Wired翻訳裏話」
  • サービス工学で未来を創る
  • デザイン・テクノロジーによるサステナビリティの実現
  • デザイン・ビジュアライゼーションが変えるマーケティング・ワークフロー
  • マイケル・カネロスの「海外グリーンテック事情」
  • 佐々木俊尚の「ウィキノミクスモデルを追う」
  • 佐々木俊尚の「電脳ダイバーシティ」
  • 合原亮一の「科学と技術の将来展望」
  • 合原亮一の「電脳自然生活」
  • 増井俊之×LogMeIn
  • 増井俊之の「界面潮流」
  • 大谷和利の「General Gadgets」
  • 小山敦史の「食と人のチカラ」
  • 小島寛之の「環境と経済と幸福の関係」
  • 小田中直樹の「バック・トゥ・ザ・フューチャー」
  • 小田切博の「キャラクターのランドスケープ」
  • 山路達也の「エコ技術研究者に訊く」
  • 後藤和貴の「ウェブモンキーウォッチ」
  • 携帯大学 web分校
  • 木暮祐一の「ケータイ開国論II」
  • 木暮祐一の「ケータイ開国論」
  • 松浦晋也の「モビリティ・ビジョン」
  • 歌田明弘の「ネットと広告経済の行方」
  • 清田辰明の「Weekly image from flickr」
  • 渡辺保史の「コミュニケーションデザインの未来」
  • 濱野智史の「情報環境研究ノート」
  • 白田秀彰の「現実デバッグ」
  • 白田秀彰の「網言録」
  • 石井孝明の「温暖化とケイザイをめぐって」
  • 竹田茂の「構成的アプローチ」
  • 織田浩一の「ソーシャルメディアと広告テクノロジー」
  • 荒川曜子の「それはWeb調査から始まった」
  • 藤井敏彦の「CSRの本質」
  • 藤倉良の「冷静に考える環境問題」
  • 藤元健太郎の「フロントライン・ビズ」
  • 藤田郁雄の「サバイバル・インベストメント」
  • 西堀弥恵の「テクノロジーがもたらす快適な暮らし」
  • 関裕司の「サーチ・リテラシー」
  • 飯田泰之の「ソーシャル・サイエンス・ハック!」
  • 高森郁哉の「ArtとTechの明日が見たい」

Agile Media Network clipping

[便利・Lifehack]Bloggerが世界最大の家電展示会「CES…

震災後にモチベーションアップしている組織がやっている2つの議論

ディズニーの世界をまぶたに描いたメイクアートを一挙紹介!【ビデオ付】