projects/segment/segnaive/Segment.java

Perlの配列は、連結リストとしても使える。
それは便利なんだけど。
ふと考えてみると、どちらも単位時間でできるとは思えない。
いままであまり考えていなかったが、「挿入・削除」「インデックスアクセス」のどちらが
とっても遅いということがない以上、両方が少々遅いのでは?

ということで、Java に移行した。
ひさしぶりなので、クラスをいっぱい作った。

いま考えているアルゴリズムを、もっとも素朴な方法で実装した。

  • 接尾辞配列の先頭2単語ずつをみて
  • 頻度が最大のbigramを見つけ
  • それを1単語にくっつけた文字列を作成し
  • 改めて接尾辞配列を作る
  • この繰り返しを、エントロピーが落ち着くまで続ける。