Darts clone 0.32g beta5 公開

トライと STL コンテナの比較(トライ(ダブル配列,簡潔データ構造)と STL コンテナ - ny23の日記)を見て,Darts clone の構築時間は長すぎると思ったので,各キーに関連付ける値を指定しないときは,DAWG を経由しないでダブル配列を構築するように改良しました.

http://code.google.com/p/darts-clone/

改良により,値を指定しない場合について,構築時間が以下のように短縮されています.単位は ns/key(ナノ秒単位/キー)です.コーパスなどの詳細が必要な方は,性能評価(http://code.google.com/p/darts-clone/wiki/Evaluation)をご覧ください.

corpus* JA1 JA2 JA3 EN1 EN2 EN3 DIG
0.32g beta4* 1,196 5,942 4,728 2,037 6,666 2,001 843
0.32g beta5* 368 1,326 1,181 747 1,058 421 337

改良前と比べると,構築時間は 16 〜 40% 程度になっています.ダブル配列を構築するだけなので,未使用要素のリンクと探索範囲の限定を組み合わせていることもあり,Darts より高速に辞書を構築できるようになりました.

実験結果を公開してくださっている ny23 さんに感謝です.

# ずーっと前のバージョンでは DAWG を経由しないようになっていたはずなのですが,手間がかかるのとコードが汚くなるので止めてしまった記憶があります.