本当にidea*idea-User Generated Vertical Search-

最近、Vertical Searchという種類の検索エンジンが注目されているらしい。


Vertical Search Siteの台頭
http://inoue.typepad.com/searchengine/2004/06/vertical_search.html


Vertical Search Engineとは、例えば医療系だけとか、住宅情報だけなどというように、ある特定分野の情報を対象として検索を行うものなどである。


そのVertical Searchだが、普通の検索エンジンから自動生成する事ができるのではないかという事を先日ひらめいた。
#ちなみに、スクーターを運転してる時に川原の菜の花畑を見てたらひらめいた。


実現方法はいたって簡単で

  • 1:検索エンジンのユーザに自身の属性をタギングさせる
  • 2:検索エンジンのクエリとその検索結果のうちのどの結果をクリックしたかをトラック
  • 3:2で生成されたログから、各属性ごとの結果の積集合を取り出して、それを各属性用の検索エンジンのインデックスとする。


というものである。
例を挙げると、ユーザが以下の4人いて

  • ユーザA:属性は[programmer]と[student]
  • ユーザB:属性は[programmer]と[professor]
  • ユーザC:属性は[english teacher]と[tennis]
  • ユーザD:属性は[english teacher]と[metabolic]


以下のように検索操作が行われたとする

  • ユーザAが「言語」と検索して「C言語の解説サイト」をクリック
  • ユーザBが「言語」と検索して「C言語の解説サイト」をクリック


すると、ユーザAとユーザAの共通属性である[programmer]におけるvertical searchでは、検索クエリ「言語」に対して「C言語の解説サイト」の価値が高いと判断することができるので、「C言語の解説サイト」を 「programmer」vertical searchのインデックスに加えることができる。

  • ユーザCが「言語」と検索して「英語の文法についての解説サイト」をクリック
  • ユーザDが「言語」と検索して「英語の文法についての解説サイト」をクリック


と検索操作が行われれば、同様のロジックで「英語の文法についての解説サイト」は「english teacher」vertical searchのインデックスに加えられる。


以上の手順を、ユーザの検索行動のたびに繰り返せば、各属性に特化した検索エンジン(vertical search engine)ができあがる。


このアイデアが実現すれば、[programming] vertical searchで、プログラム言語オタクは「インタプリタ」と検索しすれば「通訳」についてのページを見なくて済むし、農業の研究者は、[agriculture] vertical searchで、「Apple」と検索しても
「市場の微々たるパーセンテージしか占めていない使えないPCを生産してて、最近は携帯型MP3プレーヤでひどく儲けいている会社」のページを見なくても済む。


また、各ユーザが"自分の各属性用のvertical searchのインデックスの和集合"をインデックスとする検索エンジンを使えるようにすれば、各ユーザは自身にpersonarizedされた検索エンジンを使うことができる。これなら、各ユーザは自身の属性のタギングの手間はいとわないだろう。
#タグのゆらぎなどの問題ももあるので、ユーザに好きな属性を作らせるかどうかは考えなくてはならないけど


実装するのも、Google Web APIやYahoo Web APIを使えば、GoogleやYahooのラッパを簡単に作ることができるので容易。


使われると使われるほど便利になる検索エンジン、誰か作らない?