Ubuntu Weekly Recipe

第200回 [連載200回記念特別企画]Ubuntuで究極の文字入力環境を模索する

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

連載200回達成!

今回でUbuntu Weekly Recipeもついに連載200回を達成することができました。リーダーの小林さんに「200回記念特別企画でうつぶせになってよ」とお願いしたのですが,多忙を理由に断わられてしまいました。楽しみにしていた読者の皆様には大変申し訳ありませんが,今回は水野が担当させていただきます。ひとつお付き合いいただければ幸いです。

究極の日本語入力方式を考える

ほとんどのUbuntuユーザーの皆さんは,AnthyまたはMozc,あるいはATOKを使って日本語を入力していると思います。しかしこれらの日本語変換エンジンには「形態素解析ミス」という共通の弱点があり,本連載175回では形態素解析を行なわない変換エンジンとしてSKKを紹介しました。SKKは素晴しい日本語変換エンジンですが,やはり万能ではありません。たとえばSKKは文脈をいっさい読まず,品詞の区別をしないため,変換候補に同音異義語が大量にある場合には変換効率が極端に落ちてしまうという弱点があります注1)⁠

さて,IMを経由しないと母国語を入力できない我々日本人は,この「変換候補を選ぶ」という無駄な作業から逃れることはできないのでしょうか? いいえ,我々にはまだ希望が残されています。それが「漢字直接入力」⁠略して漢直です。

注1
たとえば「こうしょう」という読みで漢字変換すると,20個ほどの候補が出てきます。さらに「こう」で漢字変換すると候補は230ほどあって途方に暮れます。

キーボードから漢字を入力しよう

一般的な日本語入力では,ひらがなを入力した後に,変換エンジンを用いて漢字に変換します。それに対し漢直は,キーボードから直接漢字を入力します。つまり「変換」ではなく,あくまで日本語「入力」となります。ひとくちに漢直と言ってもいくつかの種類があり,その中でも有名なものがT-CodeやTUT-Codeと呼ばれる方式です。

T-Codeはホームポジションに置いた左右の手で,それぞれ4段x5列(人差し指が2列ぶん担当)の計40個のキーを使って入力を行ないます。この40個のキーのうちふたつを打鍵する操作にひとつの文字が割り当てられています。つまりふたつのキーの組み合わせで,40x40=1600文字を,キーボードから直接入力することが可能なわけです注2)⁠ここにアサインされていない文字を直接入力することはできないことになりますが,日常的に使用する文字の95%以上はカバーされていると言われています。T-Codeにはストローク表という,⁠ふたつのキーをどの順番で押したら何の文字が入力されるか」を表わした表があり,当然ですがT-Codeで文字を入力するためには,この表を覚える必要があります注3)⁠

TUT-CodeはT-Codeをベースにした入力方式です。T-Codeとの一番の違いは,ひらがなのアサインに規則性があることと,2ストロークで入力できない文字のために3ストロークの組み合わせが用意されたことです。規則性があるため,ひらがな入力だけに限れば非常に早く習得することが可能です。

これらの入力方式は漢字を直接入力するのがメインですが,入力したひらがなを漢字に変換することもできます。つまりひらがなさえ入力できるようになれば,一般的なかな漢字変換と同じように変換を行ない,ストロークを覚えている漢字のみ直接入力する,といった運用ができます。ひらがな入力が覚えやすいTUT-Codeは,T-Codeよりも敷居は低いと言えるでしょう。

注2
実際はすべての組み合わせに文字がアサインされているわけではなく,入力できる文字は1300文字ほどです。
注3
ストローク表はhttp://openlab.jp/tcode/resources/doc/aiueo-hasida.pdfが参考になります。またコード表は /usr/share/t-code/tcode.txt にインストールされています。

UbuntuでTUT-Codeを使う

それではUbuntuでTUT-Codeを使って日本語入力をしてみましょう。Ubuntu 11.10の標準インプットメソッドはIBusですが,現在IBusでTUT-Codeを利用することはできません注4)⁠そこでインプットメソッドにuimを使います。パッケージ名はuim-tcodeですが,T-Code/TUT-Code/Try-Code/SKKでの入力に対応しています。

uimとuim-tcodeのインストール

$ sudo apt-get install uim uim-tcode

uimをインストールしたら,⁠システム設定」⁠⁠言語サポート」⁠⁠キーボード入力に使うIMシステム」「uim-toolbar」に設定します。一度ログアウトしてログインしなおして,デスクトップにuimのツールバーが表示されていれば設定は完了です。

ツールバーの左端にあるボタンをクリックすると,使用する入力方式をT-Code/TUT-Code/Try-Code/SKKから選択することができます。今回はTUT-Codeを選択しましょう。スパナのアイコンの設定ボタンをクリックすると設定画面であるuim-pref-gtkが起動しますので,ここで「標準の入力方式を指定」にチェックを入れてTUT-Codeを選択しておけば,毎回選択しなおす必要がなくなるので便利です。

図1 言語サポートでIMシステムをuim-toolbarに設定する

図1 言語サポートでIMシステムをuim-toolbarに設定する

図2 デスクトップ上に表示されるuimのツールバー

図2 デスクトップ上に表示されるuimのツールバー

IBusではCtrl+Spaceで日本語入力を開始しますが,uimはShift+Spaceで開始します。Shift+Spaceを押してツールバーの「_A」「あ」に変化したら,TUT-Codeでの入力が可能になります。TUT-Codeのストローク表を参考に,文字をタイプしてみましょう。余談ですが,ある文字を入力する際にどのようなストロークが必要かを調べるには,KANSAKUも便利です。入力方式を「TUT-Code」⁠スタイルを「英字」にすれば,キーボードのどのキーをどの順番で押せばよいかが簡単にわかります。

注4
IBusからTUT-CODEを扱うためのブリッジ自体はすでに存在するようです。

交ぜ書き変換で変換精度を上げる

冒頭の説明で,SKKは同音異義語の変換に弱いと書きました。例えば「きしゃ」を変換しようとすると「貴社」⁠記者」⁠汽車」⁠帰社」といった候補があがります。しかしこれは「きしゃ」という読みから漢字を求めようとするから起こる問題であり,たとえば「き者」のように,一部分だけでも漢字を確定した状態から変換を行なえれば,候補を一気に絞りこむことが可能になります。これを実現するのが交ぜ書き変換です。

uim-tcodeでキーを「alj」とタイプすると,交ぜ書き変換モードに入ります(上向きの三角形が表示されます)⁠この状態で「eieo」とキーをタイプして「き者」と入力したら注5)⁠Spaceキーを押してみましょう。変換候補の表示すらされず,即座に「記者」が確定されるはずです。読みが「き」ではじまり,かつ二文字目が「者」の単語は「記者」しか辞書上に存在しないため,その時点で候補を一意に絞ることができるのです。このように交ぜ書き変換を使えば,一部の漢字を直接入力することによって,変換効率と精度を飛躍的に上げることができます。これは変換前の状態で漢字を入力できる漢直ならではの機能です。

注5
ストローク表を見るとわかる通り,⁠ei」はひらがなの「き」⁠⁠eo」は漢字の「者」に対応しています。

部首合成変換で読めない漢字を入力する

かな漢字変換では,その漢字の読み仮名を知っていなければそもそも変換ができません。たとえば手書きの文字を清書するようなシチュエーションで,読めない漢字に遭遇すると困ってしまいます。そんな時に役立つのが部首合成変換です。

ご存知の通り,漢字は「へん」「つくり」といったパーツに分解することができます。この「漢字を構成するパーツ」を個別に入力し,合成して文字を作るのが部首合成変換です。たとえば「渚」という字を入力したいのだけれど,⁠なぎさ」という読みがわからなかった場合を考えてみます。この文字は「さんずい」「者」に分解することができます。さんずいはカタカナの「シ」で表すので「シ+者」になります。これを部首合成で変換してみましょう。

まずuim-tcodeでキーを「ala」とタイプすると,部首合成変換モードに入ります(下向きの矢印が表示されます)⁠次に「'(シングルクオート)⁠を押してカタカナ入力に切り替えてから,⁠sieo」とタイプしましょう注6)⁠これでふたつの文字が合成されて「渚」が確定されました。このように部首合成変換を使えば,読み仮名がわからない漢字や,ストローク表に存在しない文字を入力することが可能です。部首合成変換の辞書は /usr/share/t-code/bushu.rev にありますので,参考にしてください。

注6
TUT-Codeではひらがなとカタカナのストロークが同一なので,どちらを入力するかモードで切り替える必要があります。シングルクオートを押すたびにひらがな-カタカナがトグルされます。

著者プロフィール

水野源(みずのはじめ)

Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。株式会社インフィニットループ所属。

コメント

コメントの記入