trie4jの最新の実装で、Wikipedia日本語タイトル127万件を格納する速度(build)、全件を照合する速度(contains)、消費サイズ(size)を測ってみました。 クラスbuild(ms)contains(ms)size(MB) java.util.HashSet417453160.4 java.util.TreeSet402261160.2 PatriciaTrie442244104.6 TailPatriciaTrie(SuffixTrieTail)1,220271100.8 TailPatriciaTrie(ConcatTail)51724186.0 MultilayerPatriciaTrie70438691.8 MultilayerPatriciaTrie(packed)2,82286682.9 DoubleArray47110648.5 TailDoubleA
よく考えたらblogに載せてなかった(TwitterやGoogle+でつぶやいて載せた気になってた・・)ので、改めて。 LOUDSはLevel-order Unary Degree Sequenceの略。詳しくは書籍「日本語入力を支える技術」(amazon)や下記サイトを参照してください。 情報系修士にもわかるLOUDS LOUDS(Level-Order Unary Degree Sequence)を調べたのでメモ 要は木構造を01のビット列で表そうというデータ構造で、遅いけどかなり小さく圧縮できる。ただでさえJavaではオブジェクトがメモリを食う(何もフィールド無くてもポインタ2個分消費する)ので、木構造がビット列で表現できれば、絶大なサイズ削減効果があります。 既に構築済みのトライからLOUDS Trieを構築するのは結構簡単で、幅優先でトライを辿り、子の数だけ1を追加、最後に0を追
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く