AutoLinkの改善案。
bodyはスキャンしてる。
このスキャンを廃すにはbodyにランダムアクセスしないと。
body上にマークしていくことになる。
あとでマークの連続部分をスキャン。→ それは前のアルゴリズム。
bodygramに同じものが重複。これを除く…のは不可。同じN-gramでも単語内のいくつめかで別物扱いにしているので、重複していても取り除けない。wordgramにないgramはbodyから除ける。というか、連続しているのを1つの「絶対にマッチしないgram」に置き換えられる。
wordgramを部分的にロードできるように(DBに入れるとか)したらwordgramへのアクセスをメモ化してデシリアライズが要らないぶん速くなりそう。
マッチしないgramを除くのは処理とデータの付け足しになるので、このサンプルに含めないほうが
bodyが無駄に長かったりwordが少ない時に併用すれば効果ありそう。
このアルゴリズムを実用的にするには必要。