そのようなアルゴリズムが存在し、任意のデータベース (理想的には Postgres) に実装されているかどうかを知りたいです。
Levenstein は文字列に一致しますが、一致する単語の数に基づいて文字列を比較したいと考えています。たとえば、次のようになります。
速い茶色のキツネが怠け者の犬を飛び越えます
と照合しようとすると、結果は2になるはずです
ペンはテーブルの上にあります
両方の文で「the」と「over」が一致したため
そのようなアルゴリズムが存在し、任意のデータベース (理想的には Postgres) に実装されているかどうかを知りたいです。
Levenstein は文字列に一致しますが、一致する単語の数に基づいて文字列を比較したいと考えています。たとえば、次のようになります。
速い茶色のキツネが怠け者の犬を飛び越えます
と照合しようとすると、結果は2になるはずです
ペンはテーブルの上にあります
両方の文で「the」と「over」が一致したため
文字用に設計されたのと同じアルゴリズムを単語にも使用できると思います。この質問も参照してください。単語による比較は一般的ではなく、PostgreSQL がそれをサポートしていないことは確かです (また、私が知っている他のデータベースも)。ただし、David Aldridge の回答で提案されているように、配列を使用できる限り、独自のストアド プロシージャを作成できます。
Wikibooksのアルゴリズムのインスピレーションを得ることString
がList<String>
できます。SQL で同じことを実装できるようになりました。必要なのは、配列の割り当て (および 2 次元配列を使用できない場合はインデックス演算) だけです。最悪の場合、配列の代わりに一時テーブルを使用できます。size()
length()
char
equals()