タグ

algorithmとtrieに関するmanabouのブックマーク (4)

  • 高速な文字列探索:Daachorseの技術解説 - LegalOn Technologies Engineering Blog

    こんにちは。LegalForce Researchで研究員をしている神田 (@kampersanda) です。 LegalForce Researchでは現在、高速なパターンマッチングマシン Daachorse(ダークホース)を開発・運用しています。文字列処理の基礎である複数パターン検索を提供するRust製ライブラリです。以下のレポジトリで公開されています。 github.com 記事はDaachorseの技術仕様を解説します。具体的には、 複数パターン検索に関係する基礎技術(トライ木・Aho–Corasick法・ダブル配列) Daachorseの実装の工夫と性能 を解説します。 以下のような方を読者として想定します。 文字列処理アルゴリズムやデータ構造に興味のある方 自然言語処理の要素技術に興味のある方 Rustライブラリに興味がある方 Daachorseについて 複数パターン検索の基

    高速な文字列探索:Daachorseの技術解説 - LegalOn Technologies Engineering Blog
  • 情報系修士にもわかるLOUDS - アスペ日記

    一回でわかりやすく書くのは難しいので、簡潔データ構造 LOUDS の解説(全12回、練習問題付き)というシリーズにまとめました。 (2014/01/26) 古い内容を削除しました。

    情報系修士にもわかるLOUDS - アスペ日記
  • 情報系修士にもわかるダブル配列 - アスペ日記

    最近話題の「日本語入力を支える技術」を途中まで読んだ。 3章がものすごく気合いが入っている。 trie(トライ)というデータ構造の2つの実装、「ダブル配列」と「LOUDS」について詳しく説明がされている。 ダブル配列については、ぼくは以前論文を読んで勉強しようとしたのだが、その時は難しくてあきらめた覚えがある。しかし、このの説明を読むことで理解ができた。 ありがたい。 感銘を受けたので、このを教材に友達と2人勉強会をした。 この2人勉強会というのは、ぼくが復習を兼ねて友達に教えるというのがだいたいのスタイル。 しかし、いざやってみるといろいろと難しい。 次のようなところでひっかかるようだ。 例のサイズが小さく、イメージを喚起するのが難しい。 最初の図のノード番号と、最終的なダブル配列上の位置が異なるため、混乱する。 単語終端について言及がないので、どのノードが単語を表しているかがわから

    情報系修士にもわかるダブル配列 - アスペ日記
  • Trie - Negative/Positive Thinking

    はじめに Trieとその周辺を調べたのでまとめた。 Trie(トライ木)とは 文字列探索のための順序付木構造 Prefix Treeとも呼ばれる 由来は「reTRIEval」らしい 共通のPrefixをまとめたデータ構造で、文字列が辞書(Trie)に登録されているかを高速に検索することができるもの 各ノードに文字を割り当てておき、ルートからたどることで文字列が登録されているかを保持する 検索速度は、長さmの文字列ならば最悪でO(m) 二分探索の場合O(log n)だが、nは登録されている文字列の数 状況によっては、サイズが巨大になってしまう(少数の長い文字列があるなど) 例 http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Tree/Trie/ Trieの実装 参考:http://www.prefield.com/algorithm/strin

    Trie - Negative/Positive Thinking
  • 1