汎用連想検索エンジンGETA オープンソース

汎用連想検索エンジンGETAというものがある。
これは日立の研究所が作ったもので、公開されている。


ubuntu linuxの環境で、makeまでは完了したので報告しておく。
というのは、インストールでつまづく人がちらほらいるようなので、
「できたよ!」って聞けばそういう人も
自分もできそうな気になると思ったからだ。

  • 連想検索
  • 概念検索
  • レレバンスフィードバック

などの用語に興味があれば、読み進めても良いかもしれない。

darts→libiconv→chasen→nkfとインストールして、いよいよGETAのconfigureをかけたが、うまくmakeできない。

を参考に、まずubuntuのsynapticでそれらをインストール。
jperlが必要と聞いたこともあるが、synapticでは出てこないし、
スルーしておいた。makeまででは必要なさそう。
perlからGETAを使うときに必要になるかもしれない。


次に「Koshoten.net2 GETAのインストール」を参考に、
tst.cのvarargsをstdargに書き換える。 そして

$ export GETAROOT=/usr/local/geta
$ tar zxv geta2_200102.tgz
$ cd geta2
$ ./configure --prefix=$GETAROOT --with-dlcsche --with-lddlflags=-shared --with-gmake
$ make
(rootユーザになって)
# make install

のようにするとmakeまで通った。


GETAROOT=/usr/local/geta環境変数を指定しているので、
GETAは/usr/local/geta以下にインストールされる。
/usr/local/geta/sbin/mkwなどのコマンドが確認できる。
コマンドを利用するときは

./mkw

とする。ドットスラッシュが必要。
ubuntu linuxのterminalでそれを実行すると、文字化けしたので
terminalにて端末→文字コードの設定→EUC-JPで文字化けを回避した。
GETAEUC-JPと仲がよいと思っておこう。


あとは公式サイトを参考にci.confを書いた。
「2.4 セットアップの準備」でmkwコマンドを試してみたいので
「2.3 WANの外部表現」に書いてある10行のデータ

@Ra
3 Ci
2 Ciii
1 Civ
@Rb
1 Cii
5 Ciii
@Rc
4 Ciii
3 Civ

をfreqfileに書く。これはテキストファイルで、mkwによってGETA用に変換する。


これも成功したのでdumpwamなどでGETA用に変換されたデータの
中身を確認し、それもfreqfileを反映したものであると確認した。


ここで今日のGETAの導入はとめておく。
あとのインストールは試していないが、ここまでできれば進めるはず。


なんでここで止めたのかというと、GETAを何に使えばいいかを
考えていたからだ。何ができるかというと、

  • 文書と文書の距離がわかる(似ているかどうか)
  • 連想検索により、芋づる式に検索できる
  • 入力した文書の重要語がわかる
  • その人がよく喋る話題がわかる


などはできるようだ。ただ、それを利用して役に立つサービスを
作れるかと言われると、わからない。Twitter検索はすでにあるし、
単なる検索だとGoogleがある。


「あなたが訪れたページを見た人は、こんなページを見ています」
という、Amazonのようなリコメンデーションができればよいかもしれない。
それは、訪れたページの記録を多くのユーザーから集める必要がある。。。


「あなたと似ている文章、話題を書いている人を紹介します」
というのもできるだろう。それは、リコメンド先の人が、
ブログなどの文章をある程度書いている必要がある。


あと、文章には柔らかさや若さがあることに注目することもできる。

  • やわらかい文章
  • 堅い文章
  • 若い人の文章
  • 年を重ねた人の文章

などがある。私は若い人(25歳程度)が書いたやわらかい文章が好きだ。
一方、お年寄りならば年を重ねた人の文章が好きだろう。
堅さや若さは文書中の単語に現れると仮定すると、
その人の好みの書き方をする文章群から検索結果を返せるはずだ。


他には、つい最近に書かれた文章を読むことが好きな人や、
昔から人気を持続している安定した文章を読むことが好きな人がいて、
そこにも改善案が出せるのかもしれない。
最近の文章を読みたいのならソーシャルブックマークや、
Googleブログ検索をすれば済んでしまうという意見もあるだろう。。。


あと「言葉、興味の空間」があるはずだ。
自分がどの空間にいて、まわりの似ている空間を見て、
どちらの方向に興味を広げたいか指定することができそうだ。
その場合に「入門としてこの文章を読んでみてはいかが?」と
提供することができる。私の場合「カメラ入門」「絵描き入門」
などの記事を薦めてくれるとうれしい。


といったことを長々と書いてきて、自然言語処理をビジネスに
結びつけることが難しいと知った。自然言語処理には出口産業が
無いという話も聞いたことがある。Google, Yahoo, Hatenaなど
では受け入れられないほど、自然言語処理を研究している人は
たくさんいるように思える。そう考えると、幅広い研究を受け入れている
電機業界はすごいとも思える。


文書間の距離が測れるなどのGETAの機能を利用して実現できる
おもしろいアイデアがあれば、ぜひ教えてほしいです。
以上、専門外の者ですが長々とお伝えしました。