String::Trigram 手軽にできないかと調べてみると Perl には String::Trigram (cpan) というモジュールがあって比較結果を数値化して判断する、というようなことができるみたい。 n-gram 形式で処理するので単語辞書などがいらない。辞書のメンテナンスが入らない反面、n-gram のウィークポイントはスピードだった気がする... String::Trigram でテキストの類似度を測る文Aと文Bでは語順が入れ替わっていますが、トライグラムに分解して要素比較すると、それぞれ10あるトライグラムのうち、6つまで (図中 '*' で示したもの) が共通であることがわかります。このような手法で文章同士の類似度を測ったり、もっとも似ている文章を引っ張ってきてくれたりするのが、この String::Trigram なのです。livedoor Developers B