キーワード検索を超えるオープンソース検索技術

ある研究者グループが数年前からひっそりと研究を続けてきた新しい検索技術が公開された。入力された文字列に一致するものを探すのではなく、照会の意図を認識して検索する技術だ。GPLの下でライセンスされ、デスクトップ版も間もなく登場する。

この技術は意味索引付けを利用している。さまざまな応用が考えられるが、最も簡単な応用に類語の検索がある。たとえば、「果物」で在庫データベースを検索すると「リンゴ」や「オレンジ」が抽出されるといった具合だ。

ミドルベリー大学 Semantic Indexing Projectの開発責任者Aaron Coburnによると、現在、オープンソース検索ツールキットの文書化を進めており、デスクトップ検索アプリケーションは完成間近、今月末にリリースされるという。

全ソースコードはGNU General Public Licenseの下で公開されており、ダウンロード可能。同プロジェクトの中核技術であるSemantic Engineは、C++コード、Perlバインディング、GUI構築用の全コード付きで配布。開発用のSubversionアーカイブも用意されている。Standalone Engineと呼ばれているデスクトップ・アプリケーションは、今月末の公開。

Coburnらは、それに先立ちさまざまな検索プロジェクト――著述家Stephen Johnsonの研究ノートから大英博物館(ロンドン)の収蔵品解説まで――に試験実装している。

その中で最も印象的なものは小説の図式化だ。『ドン・キホーテ』のための検索機能付きebookリーダーを作ろうとしていたスペインの研究者との緊密な協力で始まった実験だという。

「その後、可能な限りProject Gutenbergのテキストとして追加することにしました。言語はいろいろで、英語、フランス語、ドイツ語、ポーランド語、ロシア語などのものがあります」

このときCoburnはデータベースの意味データを図式化するソフトウェアを加えていたのだが、その結果、この検索ソフトウェアは強力な図式化ツールに変身した。手始めにジェーン・オースティンの小説に登場する人物の図式化を行ったところ、全物語のさまざまな関係が図式化された。「図らずも、このアルゴリズムが登場人物間の関係を抽出するのに極めて有効なことがわかりました」

それ以来、この図式化ツールをほかの小説、サミュエル・リチャードソンの『クラリッサ』――英語で書かれた大長編小説――や中国の古典『紅楼夢』などにも適用してみたという。

また、ウェブログのサイトを探索するウェブ・クローラーBlog Censusプロジェクトにも試験実装された。この実験は談話分析プロジェクトとして引き継がれ、数千人の政治評論家やブロガーの書き込みを索引付けしキーワードの図式化と分析を行っている。

プロジェクトの歴史

Coburnによると、このSemantic Engineは、National Institute for Technology and Liberal Education(NITLE)が2001年に開催した未来情報技術に関するサミットに端を発するという。

このサミットは、NITLEが「今後5年間に教養文化に重大な影響を与える新技術について少数の専門家に講演を依頼」して開催されたのだという。XML、プロセス駆動学習ツール、潜在意味分析(LSA)など、学術的にホットな話題がさまざま取り上げられたが、その中でCoburnらの注目を引いたのがLSAだった。

サミットの後、NITLEは、大学講師がコース・シラバスを作り適切な学習オブジェクト・メタデータを作成する研究を行った。その結果、シラバスは約45分で作成できたが、メタデータの作成には4時間かかった。「このことから、メタデータを自動生成するツールや、蔵書目録のようなメタデータがまだ作られていない大規模収集品の情報を抽出するツールがあれば極めて有用だろうと考えたのです」

そこで、NITLEは潜在意味索引付け(LSI)技術によるオープンソース検索エンジン構築プロジェクトを立ち上げ、NITLEのMaciej Ceglowskiと主席顧問科学者John Cuadradoが担当した。語Xと語Yを共に含む文書が大量にある場合、Xを含む文書を検索するとYを含む文書も検索するというような検索技術を開発しようというのである。

プロジェクトでは、PerlとC++でさまざまなコンポーネント――文書から単語を抽出し「品詞を特定」するツールやそれらの単語を検索するツール――が作られ、ソフトウェアの「入念な実験」(Ceglowski)が行われた。

「技術的には意味があり、いろいろなものを作ることができました。しかし、プロジェクトとしては慢性的な人手不足で、実用的なソフトウェアとして仕上げることはできませんでした」とCeglowskiは言う。同氏は、現在、NITLEを離れている。

しかし、2003年頃、NITLEはアンドリュー・メロン財団から資金を得て、本格的に取り組み始めた。「予算が付き、プロジェクト専任スタッフを置くことも可能になりました。私(Coburn)は2001年にはNITLEに入職しウェブ・アプリケーションを構築していましたが、このプロジェクトに携わることになったのはこれ以降のことです」

Coburnによると、当時、研究開発はLSIアルゴリズムのスケーラビリティ問題で行き詰まっており、その対策として同じ機能を持つがスケーラビリティのある文脈グラフによるアルゴリズムに切り替え、すべてをPerlで実装することにしたという――「結果は素晴らしいものでした」

そこで、ツールを実証するアプリケーションを作り、コードの洗練に着手した。「私たちの使っていたコードはかなり高速でしたが、所詮、Perlインタープリタによるものです。グラフ全体をメモリーにロードしておく必要があり、少々不安定なところもありました。そこで、グラフをMySQLデータベースに格納することにしました。また、プロトタイピングと実験を後回しにして、C++で作り直し、QtでGUIも作りました」

Coburnによると、同プロジェクトは2007年までの資金は約束されているが、それ以降も継続できるようにホストと資金提供者を探しつつ、研究と検索ツールの実用化への取り組みを続けているという。

「このツールを利用することで、データを別の角度から理解し、キーワード検索では気づかないテキストのパターンを発見できるようになればと思います」

NewsForge.com 原文