本ページでは日本入力法である T-Code について簡単に説明します.
T-Code の概要
日本語入力には様々な方式があります. Windows PC を使用している圧倒的多数のユーザーはローマ字を入力し, ローマ字テーブルに基づいてひらがなに自動的に変換し, そこからユーザーが指定した漢字への変換する, という方式をとっています.
他方で, 一部の少数ユーザーは SKK 方式を使用しているかもしれません. これはひらがなの入力を基本とし, 漢字変換を要する箇所だけ指定し, 変換を行う方式です.
T-Code 入力はこれらと根本的に異なり, ひらがなも漢字も直接入力してしまう, というものです. 平たくいえば, ひらがなやカタカナ, 記号, 漢字といった要素をすべてテーブルに格納し, その座標指定を左右の手にそれぞれ対応した 2 つの 4x5 のキーボード領域で行います.
| 方式・ IME | キー・かな対応 | 漢字変換 |
|---|---|---|
| Microsoft IME, ATOK, Google 日本語入力 | ローマ字入力 かな入力 | 読み変換 |
| SKK | ローマ字入力 | 読み変換, 開始・終了位置を指定 |
| T-Code | 無連想式直接入力 | 無連想式直接入力, 交ぜ書き変換, 部首合成 |
T-Code の優位性
まず,漢字変換という手順を踏む必要がない点に優位性があります. 逆に通常の漢字変換を介した入力では, 一文を入力した後に以下の手順になるでしょう.
- 文頭から順に
- 無変換区間か変換区間かを指定し
- 変換区間では正しい候補を選択する
これら 3 つは思考を強制します. 特に文章作成においては複数文を入力することから, 高頻度で 1.による思考のジャンプが発生するため疲労につながります. これと比較すれば SKK では各文に対して入力順に漢字変換区間を指定し,変換を行いながら入力していく方式であるため, 思考のジャンプは発生しない優位性がありますが, それでも正しい候補を選択するために 3.による思考の脱線が発生します. 無連想式直接入力ではこれらがないため,思考に沿った入力を実現することができます.
次に, 入力文字数に対するキータイプ数が少なくなる傾向があります. 仮に漢字変換において 100%の精度で正しく変換候補がトップに選択されたとしても, その読みを用いて入力する以上は, 漢字を直接入力できる方式 (T-Code では 2 キーストローク ) に軍配があがります.
そして最後に誤変換の問題です. 読みを入力に使用する以上は, 同音の語句は常に誤変換のリスクがあります. そして最初に述べたように文頭に戻るコストが加わることで注意力は散漫となり, 誤変換を見逃す可能性は高くなります. これに対し, 直接入力の場合, キーストロークを間違えた瞬間に, 意図していない漢字が突拍子もなく入力されるため, すぐに気づきやすいと思われます.
T-Code の欠点
T-Code をはじめとする無連想式直接入力方式最大の欠点は, ストローク表を覚える必要がある点です. これは, QWERTY 配列のキーボードで各キーがどこにあるのかを記憶するのと同類の難しさがあります. しかも 40 キーの 2 ストロークであればその組合せで 40x40=1600 のテーブルになります. 幸い, T-Code には交ぜ書き変換があるため, ひらがなとカタカナ, 記号や頻出する漢字のみ記憶しておけば, 実用水準には到達できますが, ひらがなとカタカナを記憶するだけでも, 一定期間の反復練習が必要になります.
また, せっかく T-Code のキーストロークを覚えても, T-Code が常に利用できるとは限りません. 具体的には, インターネットカフェを利用するとき, T-Code が利用できる可能性は極めて低いですし, 職場で自分用の端末にはインストールできても, 他人の端末を操作する場合には使用できません. この問題を緩和するため, T-Code IME for Android を開発しています.
T-Code 入力の練習
T-Code 入力を覚えるためには, ひたすら反復練習が必要になります. Emacs を使用する方であれば, tc パッケージに付随する EELLL で練習することができます. また, EELLL を JavaScript で実装したものとして,eljs が公開されています. こちらはブラウザ上で動作するため, 試すには丁度よいかと思います.
リンク
- T-Code Laboratory: http://openlab.ring.gr.jp/tcode/index.html
- tc: https://github.com/kanchoku/tc
- eljs: https://github.com/miau/eljs