SKK

出典: フリー百科事典『ウィキペディア(Wikipedia)』

SKK(エスケイケイ、Simple Kana to Kanji conversion program)は、Emacs上で動く、日本語インプットメソッドの一つである。

目次

[編集] 概要

1987年に、東北大学教授(当時)佐藤雅彦によって開発された。本家での開発終了が2000年に宣言され、現在はSKK Openlabが開発を行っている。SKK OpenlabがリリースするSKKには、Daredevil SKKの名が付けられている。

SKKが他の日本語インプットメソッドと大きく異なるのは、かな漢字変換において形態素解析に基づいた連文節変換を行わないことである。かな漢字の境界をすべてユーザが指定することになるため、形態素解析を行うシステムではどうしても避けられない解析ミスを回避し、意図した通りの変換を行うことができる。話し言葉や方言を記述する際、その表記のぶれのほとんどはかな文字で表記される部分であるので、SKKでは変換ミスにつながらない。

SKKでは、ローマ字を直接入力するとそのままひらがなに変換される。かなを漢字に変換する場合は、漢字の開始部分を大文字で指定する。活用のある場合には送りがなの開始部分を、活用のない場合は空白を入力することで漢字へ変換する。例えば、「彼は足が速い」という文を入力する場合、「Kare haAsi gaHayaI」と入力する。

他の特徴として、シームレスな辞書登録が挙げられる。辞書に登録されていない単語を変換しようとした場合はミニバッファで変換結果の入力が促され、その結果は個人用の辞書に登録される。辞書の登録は再帰的に行うことができる。そのため、使っているうちに自然と辞書が成長していき、より快適な変換を実行することができるようになる。

SKKの大きな欠点のひとつは大文字を入力するためのシフトキーの多用、すなわち小指の酷使である。このため長時間の入力には向かないという意見もある。設定によりシフトキーを押しやすい別のキーにアサインしてこの小指問題を回避する方法もある。

SKKはローマ字かな変換に基づいた入力方式だが、漢字の始点と終点を指定できれば、直接かな入力に対応できる。多少のインストールと設定の追加により、親指シフト配列やJISかな入力、T-CodeTUT-Codeでの使用が可能である。親指シフト配列では漢字変換の始点を大文字で指定するのではなく、ホームポジションの両人差し指のキーである「f」と「j」の同時打鍵を使用する。

SKKでの日本語入力は、ほかのインプットメソッドと大きく異なるため、初めてのものは戸惑いを感じさせる。連文節変換では送りがなの開始位置を変換のたびに明示的に指定することはないからだ。しかし、手書きの際には、送り仮名の開始位置で戸惑うことなく記述できているので、慣れてくると(あるいは戸惑いの原因であるシフトキーに慣れさえすれば)手書きと同じ感覚で入力することができるとされている。

[編集] SKKのバリエーション

SKKはEmacs Lispで実装されているため、Emacsが動く環境ならばどこでも使うことができる。一方、Emacs以外で使いたい場合は、何らかの手段を講じる必要がある。

Unix系環境においては、X Window System上で動作する伝統的な XIM (X Input Method) のためのskkinputが開発された。skkinputには現在skkinput2skkinput3のふたつの実装が存在する。

XIMにかわるインプットメソッドとして開発された、他言語対応のインプットメソッドの、IIIMF (Internet/Intranet Input Method Framework)、 uim (Universal Input Method) 、SCIM (Smart Common Input Method) SKKを使用することができる。IIIMFは、XIM開発者自身によりウィンドウシステム非依存としてXIMを置き換えるべく開発されたもの。複数の言語エンジンを切り替えて使用できることを特徴としており、SKKに似た言語エンジンとして iiimf-skk が開発されている。 uim は、インプットメソッドサーバを用いずライブラリとして実装された多言語インプットメソッドで、uim-skkというモジュールを使用することでSKK方式の入力が可能となる。コンソールや、GUIフレームワーク、インプットメソッドサーバへのブリッジが提供されている。SCIMは、できるだけ多くのインプットメソッドに対応することを目標にしている、インプットメソッド・プラットホームある。scim-skk はSCIM上でDaredevil SKKと同等の機能を実装することを目標に開発されている。

Mac OS XではAquaSKKおよびMacUIM/SKKが利用できる。AquaSKKはその名のとおりMac OS X に特化したSKKライクなインプットメソッドである。SKK辞書のほかことえりのユーザ辞書を使用することができる。MacUIMはuimをMac OS Xで使用するためのパッケージである。

Windows上でSKKライクな入力を実現するにはskkimeがある。MSIMEの置き換えとして使用でき、コントロールバネルからGUIを用いて設定を行うことができる。

こうした他実装は、Daredevil SKKと独立に開発・保守されている。したがって、機能的に劣ることや、独自の拡張機能を持つこともある。

[編集] SKKの辞書とSKKサーバ

SKKの使用する辞書は、複数のユーザによって共有する書き換えられない辞書と、ユーザのホームディレクトリに置かれ、登録した単語や変換の履歴にが追加されていく個人用の辞書がある。どちらも、かな(送りがなのある場合はかな+送りがなの最初のローマ字)と変換対象のひとつ以上の漢字とを対応させたテキストファイルである。基本語を集めた辞書は、サイズ別に、S、M、ML、Lの4つが公開されている。また、人名、地名などの固有名詞や専門用語は別のファイルとして配布されており、環境や目的に応じ複数の辞書を自由に組み合わせて使うことができる。

SKKは、辞書をバッファにとりこんで検索を行うため、最初の読み込みの際若干時間がかかることがある。また、emacs 毎に大きな辞書をとりこむのは非効率でもある。そうした欠点を補うため、共有の辞書を辞書サーバで置き換えることができる。これをSKKサーバと呼ぶ。SKKサーバへは skkserv という独自の簡易なプロトコルを用いて問い合わせを行い、入力文字列から変換結果を受け取る。SKKサーバはSKKの辞書ファイルの形式に依存しないため、様々な方式で高速化、効率化を図った実装が存在する。


SKKにはskkserv以外にも多数の辞書サーバが存在する。主なSKK辞書サーバプログラムとその特徴を下記に示す。

skkserv
オリジナルのSKKサーバ。
skkipserv
辞書をメモリ上にハッシングすることで検索を高速化したSKKサーバ。
dbskkd-cdb
辞書形式としてCDBを利用したSKKサーバ。
multiskkserv
複数辞書の管理が可能なSKKサーバ。
rskkserv
Rubyで実装されたSKKサーバ。EPWING形式の辞書も利用可能。
fskkserv
OCamlで実装されたSKkサーバ。内部の索引構造にパトリシア木を用いている。
mecab-skkserv
MeCabを利用して、擬似的に連文節変換を可能にするSKKサーバ。

また、予測入力システムであるPOBoxの変換サーバプロトコルは、skkservプロトコルをもとに拡張を加えたものである。

[編集] 外部リンク