google suggest API(検索候補予測)について調べてみた

サジェスト?

googleの検索窓で、例えば「a」って入れた時点で

とか出て来るじゃないですか。これをgoogle suggestと呼びます!検索の候補を予測してくれる機能。便利。サジェストとか補完とか、オートコンプリート(auto complete)とか色々言い方はありますね。

何がしたいの?

検索って結局、世の中の人々の「いま知りたい」ことが反映されているものなわけで。検索クエリの統計でもいいんだけど、サジェストの候補、例えば「akb48 」で検索した時点で何が候補として出されるかと言うのは時々刻々とニーズも変わるしきっとgoogleの中の人も頑張って候補を作ってるんじゃないかと予想しましてAPIでひたすらとって統計を取れないかを考えてみました(長い)。ちなみに今は「akb48 」と入れると、

と言う順序で出てきます。どうでもいいけど akb って入れた時点で akb0048 って言うのが出てきた…世の中すごいことになってますね。。

どうやって使うの?

google codeとかにも公式ドキュメントとかが無かったので、やっぱりみんな勝手に使ってるだけなのかな。。まぁ、使えるから良いとしよう。以下のサイトが参考になりました。

本来の使い方としては、自分の作ったサービスとかで補完機能を実装するために上に書かれてるような方法でajaxとかで呼び出せば、クエリの入力が楽になって良いですね!!と言うことだと思います。

簡単に言うと以下のURLを叩けば予測の候補がリストで返ってきます。上がgoogleで下がamazonです。

http://google.co.jp/complete/search?q=akb48%20&output=toolbar
http://completion.amazon.co.jp/search/complete?method=completion&search-alias=aps&mkt=6&q=a

googleの場合、パラメータは以下の感じ。リクエスト先のドメインを.comとかに変えると微妙に結果が違う。なんだろう。

パラメータ 意味
q 検索キーワード(UTF-8でOK)
hl 言語(ha, en, de, etc.)
output toolbarと書けばXML形式で結果が返る。これ以外今のところ無い?JSONは使えないっぽい。

今やってることメモ

とりあえず、日本語50音×50音で、日本語2文字での検索候補がどう推移していくかのクローリングを始めた。あと適当に「モンハン」とか「ガンダム」とかの予測変換がどうなっていくかも見てみます。と言うか「このキーワード見ようぜ!」とか言うのがあれば誰か言って下さい。しばらくクローリングし続けるので、いくらかデータ貯まったら調べて公開予定。なんか変化がわかるといいなー。と言うか「こういう事をみんな検索してるんだ!」と言う気付きがあればよいですね。