google日本語入力のメリットの一つである「固有名詞に強い」をSKKにも取り込んでみる試み。
Google Suggestion の機能をSKKの変換に取り込んでみました。
知らない方にご説明すると、Google Suggestion とは検索時に表示してくれるアレです。以下のような機能です。
実はこのときブラウザでは JavaScript の機能を使って(?)、http のやりとりをしていますので、それを使えば同じようにクエリに対してのGoogle先生のサジェストが貰えると考えた。調べてみると、以下のようなクエリを発行するようだ。
http://www.google.co.jp/complete/search?output=toolbar&q=%e3%81%8b%e3%82%8a%e3%81%90%e3%82%89%e3%81%97
結果として取得できるのは以下のようなxml
<?xml version="1.0"?> <toplevel> <CompleteSuggestion> <suggestion data="借りぐらしのアリエッティ"/> <num_queries int="1330000"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="借りぐらしのアリエッティ×種田陽平展"/> <num_queries int="24600"/> </CompleteSuggestion> (中略) </tolevel>
このXMLをパーズして、サジェストをSKK側に返してあげれば良い。
XMLの解析もやりやすいという理由から、gauche で実装してみた。gauche は Linuxサーバ上で動かしているため、wceSKKSERVのSKKサーバのプロキシ機能を使う。かなりやっつけながら一応できました。固有名詞を良く入力する人であれば便利だと思います。
スクリーンショット:
gaucheのソースコードを置いておきます。gaucheウィザードから見ると酷い実装なのは分かっていますが、初心者なのでうまい実装が思い付いていません。デバッグコードも各所に入れて汚ないです。