タグ

ブックマーク / rn.hatenablog.com (4)

  • Wavelet Treeをもう一度 - 気ままなブログ

    文字列のメインであるウェーブレット木をもう一度素直に見直すことにした。 高速文字列解析の世界――データ圧縮・全文検索・テキストマイニング (確率と情報の科学) 作者: 岡野原大輔出版社/メーカー: 岩波書店発売日: 2012/12/27メディア: 単行購入: 15人 クリック: 324回この商品を含むブログ (5件) を見る Wavelet Treeに関する著者のスライドは以下である。 http://www.slideshare.net/pfi/ss-15916040 ふらふらと論文を眺めていたら、Navarro神の「Wavelet Trees for All」というサーベイ論文が加筆されて更新されていた。内容自体はあまり変わっていないと思うが図が増えていた。以下がその論文である。 http://www.dcc.uchile.cl/~gnavarro/ps/jda13.pdf 大半の内

    Wavelet Treeをもう一度 - 気ままなブログ
  • Wavelet TreeのTop-Kの改善 - 気ままなブログ

    Wavelet Treeは強力なデータ構造ですが、ひとつどうしても気になる点があります。それは、Top-Kの列挙です。文字列で紹介されているGreedyな方法は、結果がK件しか必要ないにもかかわらず、計算時間がけっこうかかります。他の操作は、最悪値の計算量が小さく、安心して使えるのに対して、Top-Kだけは、少し注意する必要があります。そのことは、文字列にも書いてあって、最悪計算量も明示してあります。 その最悪計算量ですが、要素間の頻度に大きな偏りがある場合は、無断な節点を調べずに済み、計算量はO(klogσ)に近づくとあります。つまり、ある区間内の数値に偏りがあると、問題ないということです。 1 2 3 4 2 3 4 3 4 4上記のような場合だと、Top-1のクエリを発行すると、O(logσ)です。頻度に偏りがあると、Wavelet Treeの上段での見積もりがうまく機能するので

    Wavelet TreeのTop-Kの改善 - 気ままなブログ
  • 高速な文字列マッチング - 気ままなブログ

    最近は、簡潔データ構造を中心に調べたりしていたけど、文字列マッチングを考えた場合、別のアプローチもあります。そう、grepのような逐次文字列検索ですね。以下の解説がおもしろいです。 http://www.i.kyushu-u.ac.jp/~takeda/papers/IPSJMagazineCPM.pdf CSAとかFM-Indexに隠れてしまっていますが、実はかなり強力です。特に、クエリが固定で、テキストが頻繁に変更されるようなケースでは有効です。中でも使いやすのは、Aho-Corasick法(AC法)ですね。複数のパターンを同時に検索することができます。KMPを拡張した方法です。 AC法については、日語だと 情報検索アルゴリズム 作者: 北研二,津田和彦,獅々堀正幹出版社/メーカー: 共立出版発売日: 2002/01メディア: 単行購入: 6人 クリック: 552回この商品を含むブ

    高速な文字列マッチング - 気ままなブログ
  • 高速文字列解析の"別"世界 - 気ままなブログ

    1月に「高速文字列解析の世界」を購入してから半年が経ちました。以下、文字列と呼びます。 高速文字列解析の世界――データ圧縮・全文検索・テキストマイニング (確率と情報の科学) 作者: 岡野原大輔出版社/メーカー: 岩波書店発売日: 2012/12/27メディア: 単行購入: 15人 クリック: 324回この商品を含むブログ (4件) を見る 全文検索として、「CSA」や「FM-Index」が紹介されていますが、「全文検索システム」を作るには、これらだけでは不十分です。なぜなら、以下のような特徴があるからです。 文書IDの識別が遅い。 各文書IDに出現する頻度を求めるのが遅い。 ちなみに、転置インデックス(or N-gramインデックス)を使った場合、これらの処理は高速ですね。 インデックスを圧縮しているのだからしょうがないとも考えられますが、作りたいですよねぇ、「全文検索システム」。こ

    高速文字列解析の"別"世界 - 気ままなブログ
  • 1