タグ

searchとalgorithmに関するcavoriteのブックマーク (4)

  • Ruby で Double-Array を実装して Common-Prefix Search を試してみる - P A R A G R A P H S

    lib/trie/double_array.rb at master from tily's ruby-gardening - GitHub Double-Array (ダブル配列) は トライ木を実装するためのアルゴリズムの 1 つで、他の実装よりも高速に TRIE から文字列を検索できるらしい。ChaSen や MeCab で、形態素解析を行うために必要な Common-Prefix Search (共通接頭辞探索) を行うために使われている。これを理解のために Ruby で実装してみた。 基的な動作確認 ここに書いてある bird, bison, cat の 3 単語で構築した Double-Array の例。 コード: require 'trie/double_array' da = Trie::DoubleArray.new da.build(%w|bird bison cat

    Ruby で Double-Array を実装して Common-Prefix Search を試してみる - P A R A G R A P H S
  • String::Dictionary - naoyaのはてなダイアリー

    String::Dictionary という Perl のライブラリを作ってみました。 http://github.com/naoya/perl-String-Dictionary/tree/master String::Dictionary は検索エンジンその他を作る時に必要になる「辞書」のためのデータ構造 + API です。辞書は単語の集まりですが、これを配列やハッシュなどで持つのではなく、単語をすべて繋げた一つの大きな文字列として保持することでメモリ領域を節約したものです。単語は単に文字列連結で持つだけでなく、Front Coding で圧縮しています。以下簡単な解説です。 辞書は例えば [0] ・・・ jezebel [1] ・・・ jezer [2] ・・・ jezerit [3] ・・・ jeziah [4] ・・・ jeziel ...という風に単語を配列で持つことで実現でき

    String::Dictionary - naoyaのはてなダイアリー
  • Não Aqui! » DASTrie 1.0 released

    Static Double Array Trie (DASTrie) という静的ダブル配列のライブラリをリリースしました.ダブル配列の実装はいろいろありますが,このライブラリの特徴を以下に挙げます. C++テンプレートを利用して,std::mapのような連想配列,std::setのような集合を簡単に実装できる. ダブル配列の要素を4バイト,もしくは5バイトで表現し,データベースをコンパクトにする(通常の実装では要素サイズは8バイト). 最小接頭辞トライを実装し,データベースのサイズをコンパクトにする. よくあるダブル配列の実装では,レコードのキーとユニークなIDがトライの中に格納され,レコードのデータは配列などで独自に管理する必要があります.DASTrieはC++のテンプレートで,任意のデータ型をレコードとして使い,レコードをトライの中に格納するので,連想配列として簡単に利用できます.もち

    cavorite
    cavorite 2008/11/21
    ダブル配列
  • white page

    blog めったに更新しないブログ。Suffix Arrayの構築法やデータ圧縮についてちょこっと書いてます。 memo 旧メモ。blogに全て移したので、そのうち消す予定です。 junk 過去に書いたソースコートやテスト中のものが放り込んであります。 software 自作のプログラム・ライブラリ置き場です。 links of data compression データ圧縮や接尾辞配列などに関するリンク集です。 my bookmarks お気に入りのサイト集です。

  • 1