Anthy-YahooJIMServiceは、Yahoo!の仮名漢字変換WebサービスをLinux上の仮名漢字変換のバックエンドとして使うためのラッパーライブラリです。 libanthy.so (Anthyの変換コアライブラリ)を再実装し、そっくりライブラリ を入れ替えることで YahooJIMService経由での日本語入力を実現しています。 共用のLinuxデスクトップやキオスク・多目的端末での利用を想定しています。
通常の変換. 右画面はYahooJIMServiceが返す変換結果XML
予測入力
Anthy-YahooJIMService 経由で入力する場合、その性質上ユーザが入力したすべての変換リクエストは、Yahooのサーバに暗号化されることなく送信されます。これは一種のキーロガーとして機能します。この点を十分熟知した上でご使用ください。
ビルドには、anthy のヘッダファイル (anthy/anthy.h, anthy/dicutil.h) が必要です。Ubuntuでしたら apt-get を使いヘッダをインストールすることができます。以下、ファイルパス等は Ubuntuをベースにして説明しています。適宜読み替えてください。
% sudo apt-get install libanthy-dev
ライブラリのビルドは、make コマンドだけです。 C++とiconvにしか依存していないので、POSIXライクなOSでしたら、インストール可能かと思います。 Yahoo ディベロッパーIDをお持ちの方は YAHOO_APP_ID を設定します
% make YAHOO_APP_ID=your_id
anthy-agentをつかって動作確認をします
% echo "watasinonamaehanakanodesu(space)" | env LD_LIBRARY_PATH=./ anthy-agent | nkf -w (3 ((UL RV) "私の" 0 11) ((UL) "名前は" 0 5) ((UL) "中のです" 0 51))
YahooJIMService経由で結果が来ているかどうか確認するには、 ANTHY_YAHOO_JIM_SERVICE_LOGFILE 環境変数を使います。YahooJIMServiceとの やりとりが指定されたファイルに保存されます
% echo "watasinonamaehanakanodesu(space)" | env LD_LIBRARY_PATH=./ ANTHY_YAHOO_JIM_SERVICE_LOGFILE="log" anthy-agent (3 ((UL RV) "私の" 0 11) ((UL) "名前は" 0 5) ((UL) "中のです" 0 51)) % cat log /JIMService/V1/conversion?&response=katakana,hiragana,alphanumeric,half_katakana,half_alphanumeric&appid=YahooDemo&sentence=%e3%82%8f%e3%81%9f%e3%81%97%e3%81%ae%e3%81%aa%e3%81%be%e3%81%88%e3%81%af%e3%81%aa%e3%81%8b%e3%81%ae%e3%81%a7%e3%81%99&dictionary=default,name,place,zip,symbol HTTP/1.1 200 OK ..
通常のanthyにいつでも戻せるように、現在使っている libanthy.so.0.1.0 を待避した上で、 コピーします。
% sudo mv /usr/lib/libanthy.so.0.1.0 /usr/lib/libanthy.so.0.1.0-org % sudo cp libanthy.so.0 /usr/lib/libanthy.so.0.1.0
バックアップを元に戻します
% sudo mv /usr/lib/libanthy.so.0.1.0-org /usr/lib/libanthy.so.0.1.0
Anthy の APIをそっくり再実 装しているだけなので、ユーザインタフェイス側の変更は基本的にありません。 SCIM-anthy, UIM-anthy, anthy-el を使って日本語入力ができます。tcpdump (tcpdump -X "port 80")を 使うと、自分のリクエストがどのタイミングで送信されたかわかります。
変換結果が得られない場合は、エラーメッセージを変換候補の1番目に表示します。
プロキシー経由でアクセスする場合は、環境変数 HTTP_PROXY を使います。
% echo "kitakore(space)" | env HTTP_PROXY=proxy:8888 anthy-agent
YahooJIMServiceは、変換の時に用いる辞書を変更することができます。デフォルト ではすべての辞書を使うようにしていますが、ユーザ側で変更した い場合は、ANTHY_YAHOO_JIM_SERVICE_DIC環境変数を使います。
% echo "kitakore(space)" | env ANTHY_YAHOO_JIM_SERVICE_DIC="default" anthy-agent
辞書は default,name,place,zip,symbol から選択することができます(,区切り で複数選択可)。詳細は、YahooJIMServiceのページをご覧ください。