分12かな漢字変換システム今回は「Gyaim」というMacの日本語入力システムを紹介します。この連載は,シンプルなのに便利な「コロンブスの卵」的なシステムを紹介する趣旨のものなのに,日本語入力システムのような複雑なものを取り上げるのは変だと思われるかもしれませんが,「Gyaim(ギャイム)」は単純な原理にもかかわらず実用的に利用できるIMEですので,ここで紹介したいと思います(図1)。私はこの連載をすべてGyaimで書いています。AtomでGyaimを使っているところ現在のパソコンでは,「かな漢字変換システム」で日本語入力を行うのが普通になっています。かな漢字変換システムは,1978年に東芝から販売された日本語ワープロで初めて導入されたものですが,パソコンの黎明期から標準的に利用されてきています。パソコンのかな漢字変換システムでは,いわゆる連文節変換が主流になっています。連文節変換とは,文章の読みをすべて入力してから,漢字混じりの日本語文字列に一気に変換する手法のことで,たとえば「わたしのなまえはなかのです」という入力を「私の名前は中野です」に変換するというものです。「私の」「名前は」のように,息継ぎできる場所で文を区切った単位を「文節」と呼びますが,連文節変換では複数の文節を含む文を一気に変換できるのが特長です。連文節変換は一見便利そうですが,実は次のようなさまざまな問題があります。非力なマシンで利用しにくいこれからのユビキタス社会においては,パソコンの熟練者だけが使える入力手法ではなく,どこでも誰でも簡単に使えるシンプルで柔軟な入力方式が必要で,次の要件が満たされる必要があるでしょう。操作の種類や量が少ないユーザがカスタマイズ可能さまざまな環境で同じ方式が利用可能このような要件を満たすためには,単純なアルゴリズムに基づいて単純な操作で入力を行えるようなコロンブスの卵的な入力システムが必要だと思われます。SKK連文節変換を利用しない場合,かな漢字変換は辞書を参照して読みを漢字に置き換える単純な検索作業に近く,動詞の活用への対応などを除けばそれほど難しいものではありません。単純なしくみで日本語入力を行うシステムの例として,Emacs上のSKKというシステムがあります。SKKは1987年ごろ,京都大学名誉教授の佐藤雅彦氏が東北大学にいたとき開発したEmacs用の日本語入力システムです(図2)。SKK利用例SKKには英数字モードと日本語モードがあります。日本語モードでローマ字を入力するとひらがなが入力されますが,「書く」のような漢字を含む動詞を入力したい場合は「KaKu」のように大文字と小文字を混ぜたローマ字を入力します。最初の大文字「K」は変換の開始を意味しており,2つめの大文字「K」は送り仮名の開始を意味しています。ような漢字への変換が行われ,「KaKu」と入力された場合は「書く」や「欠く」のような文字列に変換されるようになっています。変換開始場所や送りがなの場所をユーザが明示することによって,単純なアルゴリズムでの変換を可能にしているわけです。GyaimSKKは単純なしくみで効率的な日本語入力ができる,コロンブスの卵的な優れた日本語入力システムなのですが,一般的なかな漢字変換システムと同じように,すべての読みを正確に入力する必要があるうえに,漢字や送り仮名についてユーザが明示的に指定しなければならないためユーザの負担が大きく,万人向けとは言い難いものでした。私は1990年代ごろはSKKを愛用していたのですが,携帯電話の予測型テキスト入力システム「POBox」の開発後はあらゆる場所でPOBoxに準じた入力手法を使っており,MacではGyaimを使っています。GyaimはMacで動くシンプルな日本語入力システムです。Motionを使用)で記述されており,スマホの予測入力システムと同じように利用できます。Gyaimは次の手順でインストールします。Methodsに置くこのように設定を行ったあと,環境設定画面の[キーボード]→[入力ソース]で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と同様に読みと漢字の対応辞書を使ってかな漢字変換を行います。日本語入力モードで「とうきょう」と入力されたとき,辞書から「とうきょう」という読みを持つ単語を検索して,リストして候補として表示し,ユーザの操作で候補を選択してテキストに貼り付けます。ような単語をすべて辞書に登録しておくのはたいへんですので,「東京は地名である」「地名のあとには駅や大学が続くことがある」という情報を辞書に登録しておくことにより,「東京駅」が辞書に登録されてなくても「とうきょうえき」を「東京駅」に変換できるようにしています。同じ手法で動詞の変化形も扱うことができます。辞書に,「書」の読みは「か」である「書」のあとにはカ行五段活用語尾がつながる「か」はカ行五段活用語尾であるといった情報を定義しておけば「かかない」を「書かない」に変換できます。このように,単語の読みと属性,接続情報を定義しておくだけで,それなりに自然言語を入力できますし,日本語以外の文字入力でも利用できます。Appleなどで働く。携帯電話に搭載される日本語予測変換システム『POBox』や,iPhoneの日本語入力システムの開発者として知られる。ユーザインターフェースの心理学』。そこにはヒットメーカーの極意があった噂の超高速分析データベースを試してみよう~ログ解析,機械学習なんでもござれ~ワールドワイドで3,500社以上が活用しているビッグデータ高速分析用のデータベース「Vertica」。クエリ性能を簡単に数百倍にする術をご紹介します。「JIRA」をはじめとするアトラシアンのツール群。多くのオープンソースソフトウェアを継続して提供する支えとなっている使い易さを探ってみます。Cloud」が,いよいよ日本でのサービスを本格的に開始します。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。