13

類似度と距離の尺度を変換する一般的な方法はありますか?

2 つの文字列に共通する 2 グラムの数などの類似度の尺度を考えてみましょう。

2-grams('beta', 'delta') = 1
2-grams('apple', 'dappled') = 4

これを、レーベンシュタイン距離などの差の尺度を期待する最適化アルゴリズムにフィードする必要がある場合はどうすればよいでしょうか?

これは単なる例です...存在する場合、一般的な解決策を探しています。レーベンシュタイン距離から類似度の尺度への移行方法のように?

アドバイスをいただければ幸いです。

4

9 に答える 9

5

類似度が0から1の間の場合、次のいずれかを使用できます。

1-s
sqrt(1-s)
-log(s)
(1/s)-1
于 2011-12-15T20:54:06.853 に答える
1
similarity = 1/difference

そして気をつけてdifference = 0

于 2010-10-31T19:35:14.990 に答える
0

私のプロジェクトの1つ(協調フィルタリングに基づく)では、-1から1(1に近いほど類似し、-1に近いほど多様)の相関(ベクトル間の正弦)を正規化された距離(に近い)に変換する必要がありました。 0距離は小さく、1に近い場合は距離が大きくなります)

この場合:距離〜多様性

私の公式は次のとおりです。dist = 1 - (cor + 1)/2

多様性に類似性があり、ドメインが[0,1]の場合、どちらの場合も最も簡単な方法は次のとおりです。

dist = 1 - sim

sim = 1 - dist

于 2011-12-15T21:06:54.730 に答える
0

レーベンシュタイン距離の場合、シーケンスが一致するたびにsimスコアを1ずつ増やすことができます。つまり、削除、挿入、または置換が不要になるたびに1つです。そうすれば、メトリックは、2つの文字列に共通する文字数の線形測定値になります。

于 2011-08-05T13:33:32.753 に答える