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ウィザードから見ると酷い実装なのは分かっていますが、初心者なのでうまい実装が思い付いていません。デバッグコードも各所に入れて汚ないです。

skk_google_suggest.zip

コメントを残す

メールアドレスが公開されることはありません。