研究概要 |
大規模圧縮文書データベースのためのデータ構造と検索アルゴリズムの開発を行った.データ構造としては既存の圧縮接尾辞配列を基本として用いる.このときのパタンPの検索時間は0(|P| log n)時間(nはデータベース中の文書の長さ)であるが,これを高速化するために2つのデータ構造を提案した.1つ目は文字列の2つの接尾辞間の最長一致長を求めるためのものである.これを接尾辞配列と共に用いるとPの検索時間は0(|P|+log n)時間に改善される.データ構造のサイズは6n+o(n)ビットであり,n log nビット必要であった既存手法を大きく改善している.2つ目は,Pの検索が0(|P|)時間で行えるような圧縮接尾辞配列の新しい表現法と検索アルゴリズムである.なおアルファベットサイズはlog nの多項式であるとする.1つ目のデータ構造に関する論文で情報処理学会山下記念研究賞を受賞した. 次に,圧縮接尾辞配列を構築する省スペースなアルゴリズムを開発した.既存手法では一旦接尾辞配列を作成し,それを圧縮しているため0(n log n)ビットの一時的なスペースが必要であった.本研究では0(n)ビットの一時的なスペースで動作する0(n |Σ| log n)時間(Σはアルファベット)のアルゴリズムを開発した.これを用いることで,人の全DNA配列に対する圧縮接尾辞配列をメモリ4GBのPCを用いて21時間で作成することが可能になった.既存手法では48GB以上のメモリが必要であった. さらに,文書検索で広く用いられている文書の順位付け法であるtf*idfスコアの計算のためのデータ構造を開発した.現在は転置ファイルと呼ばれるデータ構造が広く用いられているが,特定の文字列に対してしかスコアが計算できない.本研究のデータ構造では任意の検索文字列について準最適時間でスコアの計算ができ,そのサイズはデータベース中の文書サイズの約3倍と非常にコンパクトである.このデータ構造を用いることにより日本語などの単語の切れ目があいまいな文書の検索において検索精度を向上できる.この結果を情報科学技術フォーラムで発表し,FIT船井ベストペーパー賞を受賞した.
|