タグ

algorithmと全文検索に関するakishin999のブックマーク (6)

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

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

    ハクビシンにもわかる全文検索 - Qiita
  • 第5回さくさくテキストマイニングに参加しました #さくテキ - nokunoの日記

    第5回 さくさくテキストマイニング勉強会 : ATND データクリーニング入門 〜精度は細部に宿る〜 by toilet_lunch様 掃除は大事です!! Unicode正規化 フィルタリング 第2水準の漢字は捨てる 短いツイートは捨てる URLは捨てる あなたの質問に答えてみた 〜疑問に対する応答〜 by gepuroさん イカ娘の記事から答えをマイニング Cabochaを使って係り受け解析 質問文から疑問詞を取り出す 当に気持ちのいい全文検索〜Lucene/Solr入門〜 by AntiBayesianさん 検索エンジン入門 転置インデックス 適合率と再現率とF値 TF-IDF Lucene/Solr入門 Solrのインストール Schema設定:typesとfields gosenで形態素解析 ツイートをCSVで登録 まとめ 検索は大規模データ時代には必須 全文検索,転置インデック

  • Aho Corasick 法 - naoyaのはてなダイアリー

    適当な単語群を含む辞書があったとします。「京都の高倉二条に美味しいつけ麺のお店がある」*1という文章が入力として与えられたとき、この文章中に含まれる辞書中のキーワードを抽出したい、ということがあります。例えば辞書に「京都」「高倉二条」「つけ麺」「店」という単語が含まれていた場合には、これらの単語(と出現位置)が入力に対しての出力になります。 この類の処理は、任意の開始位置から部分一致する辞書中のキーワードをすべて取り出す処理、ということで「共通接頭辞検索 (Common Prefix Search)」などと呼ばれるそうです。形態素解析Wikipediaはてなキーワードのキーワードリンク処理などが代表的な応用例です。 Aho Corasick 法 任意のテキストから辞書に含まれるキーワードをすべて抽出するという処理の実現方法は色々とあります。Aho Corasick 法はその方法のひと

    Aho Corasick 法 - naoyaのはてなダイアリー
  • 転置インデックスの構成とブーリアン検索

    転置インデックスの構成とブーリアン検索 2008-01-18-1 [IIR][Algorithm] 「Introduction to Information Retrieval」[1]の第一章[2008-01-12-1] の転置インデックスまわりの用語と検索手順などの解説です。 ちょっと前に書いた 『ウェブ検索を「の索引」で説明する試み』[2007-06-17-6] という記事の続きでもあります。 「転置インデックスによる検索システムを作ってみよう!」 [2007-11-26-5]もご参考に。 § 転置インデックス (inverted index または inverted file) は、 dictionary と postings の二つの部分から構成されます。 dictionary は索引語 (term) の集合です。 term が登場する文書の ID を posting と呼びます

    転置インデックスの構成とブーリアン検索
  • 1日で作る全文検索エンジン - Building a full-text search engine in "ONE" day - - とあるはてな社員の日記

    最近、「Introduction to Information Retrieval」というStanfordの大学院向け教科書のドラフトを読んでいます。id:naoyaあたりが勉強会で読んでいる教科書です。この教科書には、効率のいい全文検索システムを作るにはどうすればいいか、という(まさに)教科書的手法が網羅的に書いてあり、そのあたりに興味がある人には、非常に興味深く読めるお勧めのです。 ただ、面白い面白いと言っているだけでは、エンジニアとしては価値半減ですので、GW中にrubyで一日かけて実装してみました。 さすがに実装は、一日で作ったものですから、非常に素朴です。マルチバイト文字はbi-gramで、シングルバイトはスペースなどの区切り記号で認識しています。インデックスは、rubyの処理系のHashやArrayで保持しており、外部にMarshallで書き出す、というものです。検索エンジン

  • [を] 転置インデックスによる検索システムを作ってみよう!

    転置インデックスによる検索システムを作ってみよう! 2007-11-26-5 [Algorithm][Programming] 転置インデックス[2007-06-17-6]による検索システムの実装は パフォーマンスを無視すれば意外と簡単です。 それを示すために Perl で簡単な検索システムを作ってみました。 検索方式は転置インデックス(Inverted Index)、 ランキングには TF-IDF[2005-10-12-1] を用いました。 検索対象ファイルは一行一記事で以下のフォーマットとします。 [記事ID][SPC][記事内容]\n 記事IDは数字、記事内容は UTF-8 の文字で構成されるものとします。 以下のようなサンプル test.txt を用意しました。 1 これはペンです 2 最近はどうですか? 3 ペンギン大好き 4 こんにちは。いかがおすごしですか? 5 ここ最近疲れ

    [を] 転置インデックスによる検索システムを作ってみよう!
  • 1