タグ

FM-indexに関するInoHiroのブックマーク (5)

  • Oktaviaとは何か? — Oktavia

    OktaviaはJavaScriptで書かれた全文検索エンジンです。ブラウザとnode.js上で動作します。 プロジェクトのゴールは、 Sphinx のHTML出力用の、代替の検索エンジンを作ることです。 SphinxはPythonで書かれた素晴らしいドキュメントツールです。このツールはシンプルなフォーマット(reStructuredText)のテキストを読み込み、HTMLPDFなどのさまざまなフォーマットに変換します。このツールはプログラミング言語のリファレンスマニュアルやソフトウェアの使用方法の説明、ライブラリやAPIのドキュメントなどでよく使われています。 SphinxのHTMLジェネレータにはシンプルな組み込みの検索エンジンが搭載されています。Sphinxで作成されたHTMLドキュメントには検索窓がついており、ドキュメント全体を検索できるようになっています。これはJavaScri

  • ウェーブレット行列とFM-indexで全文検索を書いてみた - くじらにっき++

    www.youtube.com 去年のはじめに高速文字列を買ったのですが、アルゴリズムを眺めるだけで実装はしていませんでした。特にウェーブレット行列は実装が大変そうにしか見えなくて敬遠していたのですが、ICPCの夏合宿で @hirokazu1020 さんに「あれはアイデアさえ理解していれば実装するのは簡単だよ」という旨のことを言われたので、学校のプログラミングの演習の自由課題としてウェーブレット行列とFM-indexを実装してみました。 制作物はブラウザ上で動く青空文庫のインクリメンタル検索です。C++で書いたFM-indexをboost-pythonを使ってPythonから呼び出せるようにし、Flaskを使ってブラウザからのリクエストに応答するような仕組みにしてみました。アルゴリズムの質的なところは全て自分で書こう!というモチベーションで始めたのですが、SA-ISが難しくてsais.

    ウェーブレット行列とFM-indexで全文検索を書いてみた - くじらにっき++
  • ハクビシンにもわかる全文検索 - Qiita

    高速な全文検索アルゴリズムであるFM-indexについて解説する。理解しがたい点や間違っている点があれば是非コメントで指摘してほしい。 概要 FM-indexはリニアな文字列に対して検索をするアルゴリズムで、主に簡潔データ構造とBWT(およびLF mapping)という二つのアイデアから成り立っている。BWTはBurrows-Wheeler変換のことで、文字列を特殊な並び順に変換するという可逆関数である。BWTされた文字列を簡潔データ構造固有の操作をすることで、クエリ文字列の長さに比例した短い時間で文字列を探し出すのがFM-indexだ。 簡潔データ構造 簡潔データ構造に関してはFM-indexで必要となる二つの関数だけ説明して、詳細は次の機会に譲るとする。さて、二つの関数はともに文字列のある位置より前の部分に含まれている文字の数を数え上げるというものでrank()とrankLessTha

    ハクビシンにもわかる全文検索 - Qiita
  • FM-index - Wikipedia

    In computer science, an FM-index is a compressed full-text substring index based on the Burrows–Wheeler transform, with some similarities to the suffix array. It was created by Paolo Ferragina and Giovanni Manzini,[1] who describe it as an opportunistic data structure as it allows compression of the input text while still permitting fast substring queries. The name stands for Full-text index in Mi

  • FM-indexによる全文検索

    4. 前処理1:接尾辞配列の構築 0 mississippi$ 1 ississippi$ 2 ssissippi$ 3 sissippi$ 4 issippi$ 5 ssippi$ 6 sippi$ 7 ippi$ 8 ppi$ 9 pi$ 10 i$ 11 $ 11 $ 10 i$ 7 ippi$ 4 issippi$ 1 ississippi$ 0 mississippi$ 9 pi$ 8 ppi$ 6 sippi$ 3 sissippi$ 5 ssippi$ 2 ssissippi$ 辞書順でソートする ※$は任意のアルファベットよりも 順位が小さいとする 接尾辞配列SA

    FM-indexによる全文検索
  • 1