Google サジェストのローマ字検索機能 = Google IME

Google サジェストがもっと便利にという記事で、検索窓にローマ字で入力しても Google サジェストに変換した候補が出るようになったことを知る。(前からできたような気もするが……Google サジェストではなかったかも)

それでこの記事に関するはてなブックマークのコメントを見ていて、これ migemo の発展版と見ている人が大勢いるのかぁ、とはっとする。自分的にはかな漢字変換の発展版だと思っていたのだが……(ローマ字→かな漢字変換してくれて検索する、という意味で。多言語情報検索の単言語版と見てもよいかも)。以下、実際どういう技術でやっているのかは推測にすぎないが、Migemo との比較で考察してみる。

Migemo としては

仕組みは簡単です。利用者が 1文字入力するたびに、ローマ字列か ら正規表現を生成して、それで検索するという力技な方法です。

ということで、たぶんクエリに対する検索対象の重み付けなんかはしていないように見える。正規表現でパターンを書いて単にマッチするのを取るというのは人文系の人はよくやるけれども、情報検索・自然言語処理的には頻出パターンマイニングとか言語モデルとかランキングの学習とかいろいろあり、パターンの生成に関しても、どういうパターンがよいか、パターンの重み付けも学習したりできるので、単に Migemo するよりは賢くできるとは思う。

もっとも、Google サジェストの結果を見ると、単にマッチしたものを出しているようには見えない(検索クエリの単純な頻度でもないようなので、もう少し賢いことをしているような気がする)。検索エンジンの枠組みもあるし、このあたりはエキスパートが揃っているので、もっと凝ったことをしているのであろう。

一方、

ところで、ローマ字のまま日本語をインクリメンタル検索する別の 方針として、検索するたびにバッファの内容全体をローマ字に変換 し、それに対して検索するという方法が考えられます。この方法は、 テキストが大きくなると破綻します。

とも書かれているのだが、Google 日本語 N グラムのようなデータがあれば割と簡単にローマ字→かな漢字変換部分は作れる(たとえば拙作の ChaIME)ので、クエリをローマ字のままテキスト側をローマ字にして曖昧検索したらすぐ破綻するだろうが、ローマ字をかなに変換、そしてかな漢字変換して、展開した候補で検索をかける、というのが遙かに自然だし、入力として入ってくるクエリは非常に短いので、極めて効率的に動くであろう。

かな漢字変換で展開しまくって検索に時間がかかるかもしれないが、全展開しても一単語せいぜい数十なので許容範囲なのではないかな? Google だったらそもそも日本語の検索クエリログが大量にあるので、言語モデルとして「検索クエリモデル」が作れる。つまり、「検索クエリにいかにも現れそうな文字列」が判定できるので、かなり変換候補も絞り込むことができそうである。

あと、インクリメンタル検索部分は本質的には予測(省入力)変換技術の裏返しでもあるので、この部分も既存のかな漢字変換技術がそっくり使える。検索クエリログに対する最適化は必要であろうが、予測入力であれば単純な正規表現マッチのインクリメンタル検索よりは(頻度に基づく並べ替えとか)もうすこし凝ったことをしているはずなので、そこまでがんばらないでそのまま使ってもいいのかもしれない。Google IME API どころか Google 予測入力 API として公開されたら使いどころはいろいろありそうである。

全検索クエリに対するローマ字クエリがどれくらい混ざっているのか調べたことはない(だからこの機能がどれくらいの人にとって嬉しいのかも分からない)が、migemo に一度慣れたらわざわざかな漢字変換してから検索しなくなるように、人間は慣れたら怠惰なほうに怠惰なほうに流れてしまうので、ローマ字で検索できると知ってしまったらみんなローマ字で入れまくるのではないかとも思う。

Yahoo! (VJE) とか MS (MS-IME) とか、かな漢字変換エンジン持っている企業(でなおかつ検索エンジンも提供しているところ)ならもっと早くからこういう機能もつけられるだろうに、Google に先を越されて不憫ではある。API 公開では Yahoo! が先行しているので、予測入力も含めて出したらこういう migemo 的な感覚で使ってくれてもっとおもしろいアプリケーションを作ってくれる人も出るかもしれない。

たぶん次のステップはエンタープライズ検索で企業向けに社内文書の検索をすることだろうから、かな漢字変換エンジンの分野適応も関連してくる技術なんだろうけど、ここまでくると人手でかな漢字変換のメンテナンスをするのは不可能なので、統計ベース(もしくは統計とのハイブリッド)に切り替えているところが生き残るのではないかと予想している。

こういう細かいインタフェースの改善の裏方で自然言語処理技術を使ってサポートできるのは嬉しいことである。もっと色んなところで使われて常識化してほしいな〜

(追記)
はてなブックマークのコメント欄で「Google Desktop 検索にも組み込んでほしい」とあったが、確かにエンタープライズ検索だけでなくデスクトップ検索でもあるとちょっと便利な機能かも(migemo 同様)。Google Desktop っでももちろん対応できるだろうし、Microsoft が少しやる気になったらすぐ組み込まれそうだが、はてさて……

cf.