タグ

全文検索と転置インデックスに関するrbyのブックマーク (3)

  • 転置インデックスの構成とブーリアン検索

    転置インデックスの構成とブーリアン検索 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 と呼びます

    転置インデックスの構成とブーリアン検索
  • [を] 転置インデックスによる検索システムを作ってみよう!

    転置インデックスによる検索システムを作ってみよう! 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 ここ最近疲れ

    [を] 転置インデックスによる検索システムを作ってみよう!
  • 第20回 転置インデックスの実装(その2) | gihyo.jp

    この表によると、1000個のデータを格納するには19個のブロック、1万個のデータを格納するには35個のブロック、10万個のデータを格納するには53個のブロックが必要になることがわかります(表中色のついた箇所⁠)⁠。 このブロック数を拡張する方法は、使用されていない空きレコードが少ない(最大でも最後に作成したブロックの空きレコード分)ことや、データを追記する際の処理が軽くて済むというメリットがあります。実際に使用してみたところ、転置インデックスの作成スピードは十分でしたが、検索性能に関してはもうひとつ満足のいくものではありませんでした。 ハードディスクのスピード 実はブロック数を拡張する方法の検索性能が思わしくない大きな理由は、記憶媒体がハードディスクである点です。ハードディスクには物理的な特徴があり、これがディスクの読み書きの性能を大きく左右します。 ハードディスクはレコードのようなディス

    第20回 転置インデックスの実装(その2) | gihyo.jp
  • 1