運営しているサーバのサービスで、ある検索条件に対する結果を一覧で表示しているのですが、結果を全て表示するのではなく、なるべく似た結果を省いて表示したいという要望に駆られました。 例えば、あるタレントが出演しているDVDや番組を一覧表示するとして、全ての番組名を表示すると、同じ番組名の放送日が異なるものや、同じシリーズのDVDで巻数が異なるものがたくさん表示されてしまいます。 そのため、こういうものを除外して、そのタレントが、どんな作品に出てきたかのサマリーを俯瞰できるような結果を返したいと思ったわけです。 そこで考えたのは、2つの文字列を比較して、類似度がある閾値より高ければ、同じ作品の巻数違いとか放送日違いだと見做せるのではないかということです。 そこで、2つの文字列の類似度を判定する方法を探したところ、あるんですね。世の中にはすごい人がいるものです。 良く知られた方法としては、以下の2
![2つの文字列がどれだけ類似しているかを判定するレーベンシュタイン距離とジャロ・ウィンクラー距離(Java編)](https://cdn-ak-scissors.b.st-hatena.com/image/square/7907e65cc3f4579067d20f27d78c7e76743305be/height=288;version=1;width=512/https%3A%2F%2Fplus-idea.net%2Fwp-content%2Fthemes%2Fsango-theme%2Flibrary%2Fimages%2Fdefault.jpg)