増井ラボノート コロンブス日和

第7回 Gyaim

この記事を読むのに必要な時間:およそ 3 分

かな漢字変換システム

今回はGyaimというMacの日本語入力システムを紹介します。

この連載は,シンプルなのに便利な「コロンブスの卵」的なシステムを紹介する趣旨のものなのに,日本語入力システムのような複雑なものを取り上げるのは変だと思われるかもしれませんが,「Gyaim(ギャイム)」は単純な原理にもかかわらず実用的に利用できるIMEですので,ここで紹介したいと思います図1)。私はこの連載をすべてGyaimで書いています。

図1 AtomでGyaimを使っているところ

図1 AtomでGyaimを使っているところ

現在のパソコンでは,「かな漢字変換システム」で日本語入力を行うのが普通になっています。かな漢字変換システムは,1978年に東芝から販売された日本語ワープロで初めて導入されたものですが,パソコンの黎明期から標準的に利用されてきています。かな漢字変換システム以外にもさまざまな日本語入力システムが提案されてきましたが,それほど努力しなくても普通のユーザがとりあえず使えるうえに,熟達すれば高速に入力が可能だという特長があるため,かな漢字変換方式の日本語入力が廃れることはなさそうです。

連文節変換

現在のパソコンのかな漢字変換システムでは,いわゆる連文節変換が主流になっています。連文節変換とは,文章の読みをすべて入力してから,漢字混じりの日本語文字列に一気に変換する手法のことで,たとえば「わたしのなまえはなかのです」という入力を「私の名前は中野です」に変換するというものです。「私の」「名前は」のように,息継ぎできる場所で文を区切った単位を「文節」と呼びますが,連文節変換では複数の文節を含む文を一気に変換できるのが特長です。

連文節変換は一見便利そうですが,実は次のようなさまざまな問題があります。

  • 正確な入力が必要
    • watashinonamaeha...のような文字列を1文字も間違えずに入力する必要がある
  • 完全な読みの入力が必要
  • 変換誤りの訂正が必須
  • 非力なマシンで利用しにくい

これからのユビキタス社会においては,パソコンの熟練者だけが使える入力手法ではなく,どこでも誰でも簡単に使えるシンプルで柔軟な入力方式が必要で,次の要件が満たされる必要があるでしょう。

  • 必要なキーやボタンの数が最小限
  • 操作の種類や量が少ない
  • ユーザがカスタマイズ可能
  • さまざまな環境で同じ方式が利用可能

このような要件を満たすためには,単純なアルゴリズムに基づいて単純な操作で入力を行えるようなコロンブスの卵的な入力システムが必要だと思われます。

SKK

連文節変換を利用しない場合,かな漢字変換は辞書を参照して読みを漢字に置き換える単純な検索作業に近く,動詞の活用への対応などを除けばそれほど難しいものではありません。

単純なしくみで日本語入力を行うシステムの例として,Emacs上のSKKというシステムがあります。SKKは1987年ごろ,京都大学名誉教授の佐藤雅彦氏が東北大学にいたとき開発したEmacs用の日本語入力システムです図2)。

図2 SKK利用例

図2 SKK利用例

SKKには英数字モードと日本語モードがあります。日本語モードでローマ字を入力するとひらがなが入力されますが,「書く」のような漢字を含む動詞を入力したい場合は「KaKu」のように大文字と小文字を混ぜたローマ字を入力します。最初の大文字「K」は変換の開始を意味しており,2つめの大文字「K」は送り仮名の開始を意味しています。SKKの辞書には次のようなエントリが含まれており,

かく /核/格/各/角/画/確/:

かk /書/掛/欠/

「Kaku」と入力された場合は「核」「格」「各」のような漢字への変換が行われ,「KaKu」と入力された場合は「書く」「欠く」のような文字列に変換されるようになっています。つまり変換開始場所や送りがなの場所をユーザが明示することによって,単純なアルゴリズムでの変換を可能にしているわけです。

Gyaim

SKKは単純なしくみで効率的な日本語入力ができる,コロンブスの卵的な優れた日本語入力システムなのですが,一般的なかな漢字変換システムと同じように,すべての読みを正確に入力する必要があるうえに,漢字や送り仮名についてユーザが明示的に指定しなければならないためユーザの負担が大きく,万人向けとは言い難いものでした。私は1990年代ごろはSKKを愛用していたのですが,携帯電話の予測型テキスト入力システムPOBoxの開発後はあらゆる場所でPOBoxに準じた入力手法を使っており,MacではGyaimを使っています。

GyaimはMacで動くシンプルな日本語入力システムです。Gyaimは約1,000行のRubyRuby Motionを使用)で記述されており,スマホの予測入力システムと同じように利用できます。

Gyaimは次の手順でインストールします。

このように設定を行ったあと,環境設定画面の[キーボード][入力ソース]でGyaimを選択し,追加します図3)。

図3 日本語入力としてGyaimを選択

図3 日本語入力としてGyaimを選択

Gyaimの実装

IMEの作成には,ユーザインターフェースとかな漢字変換アルゴリズムが必要です。

IMEのユーザインターフェース

Macには,IMKitというIME作成用ライブラリが用意されており,それを利用してIMEを作成できます。IMKitにはさまざまな機能が用意されていますが,GyaimではIMKInputControllerクラスのhandleEventというAPIのみを利用しています。候補を表示したり選択したりするには,任意のCocoaライブラリを利用できます。

かな漢字変換アルゴリズム

ユーザインターフェースはシステムごとに用意する必要がありますが,かな漢字変換アルゴリズムはAndroidでもMacでも同じものを利用できます。GyaimではRubyでかな漢字変換アルゴリズムを実装していますが,同じアルゴリズムをJavaやJavaScriptで実装すれば,Androidやブラウザなどで利用できます。

GyaimではSKKと同様に読みと漢字の対応辞書を使ってかな漢字変換を行います。たとえば日本語入力モードで「とうきょう」と入力されたとき,辞書から「とうきょう」という読みを持つ単語を検索して,リストして候補として表示し,ユーザの操作で候補を選択してテキストに貼り付けます。

「東京」のあとには「駅」「大学」のような単語が続くことがあります。「東京駅」「東京大学」のような単語をすべて辞書に登録しておくのはたいへんですので,「東京は地名である」「地名のあとには駅や大学が続くことがある」という情報を辞書に登録しておくことにより,「東京駅」が辞書に登録されてなくても「とうきょうえき」「東京駅」に変換できるようにしています。

まったく同じ手法で動詞の変化形も扱うことができます。たとえば辞書に,

  • 「書」の読みは「か」である
  • 「書」のあとにはカ行五段活用語尾がつながる
  • 「か」はカ行五段活用語尾である

といった情報を定義しておけば「かかない」「書かない」に変換できます。このように,単語の読みと属性,接続情報を定義しておくだけで,それなりに自然言語を入力できますし,日本語以外の文字入力でも利用できます。

著者プロフィール

増井俊之(ますいとしゆき)

1959年生まれ。慶應義塾大学環境情報学部教授。ユーザーインターフェースの研究者。東京大学大学院を修了後,富士通半導体事業部に入社。以後,シャープ,米カーネギーメロン大学,ソニーコンピュータサイエンス研究所,産業技術総合研究所,Appleなどで働く。2009年より現職。携帯電話に搭載される日本語予測変換システム『POBox』や,iPhoneの日本語入力システムの開発者として知られる。近著に『スマホに満足してますか? ユーザインターフェースの心理学』。

コメント

コメントの記入