0

いくつかの文字列があり、それらの類似性を測定したいのですが、文字の類似性よりも構造上の類似性に基づいて、たとえば文字列の編集距離とは異なります。

例: 312164 と 48479 は、数字のみで長さが同じであるため、非常に高いスコアを取得する必要があります。Bla blubb と bla bloob blo の場合、文字のみが含まれており、間にギャップがあるため、同じである必要があります。apple と app3 f のようなカップルには、いくつかの文字を共有していても構造が異なる場合でも、適用するスコアを少なくする必要があります。

そのようなもの.誰か手がかりを持っていますか? 可能であればJavaで。

ありがとうございました!

4

1 に答える 1

1

それらを類似点で定義し、スコア付けします。

文字列の例:

バナナ

オレンジ

オレンジ 123

バナナ 234

長さ = x ポイント x は長さ

同一文字=1点(A!=a)

類似キャラ同位置=2点

各文字列に固有の文字の減点

例: バナナとオレンジを比較

長さ=6点(どちらも6点)

「a」の場合 = 1 ポイント (両方とも a を持っています)。両方に a が 2 つあれば、2 ポイントを与えます。「a」が両方の文字列で同じ位置にある場合は、さらに 2 ポイントを与えます。

「n」 = 1 ポイントの場合

合計プラスポイント: 8

オレンジには B がないため、B に 1

バナナには a が 3 つあるため、「a」は 2 です。

Banana には 2 つの n があるため、「n」は 1

O の場合は 1

r は 1

g の場合は 1

e は 1

合計マイナス: 8

合計プラス ポイント - 合計マイナス ポイント = 0

これは大まかなロジックですが、そこから何かを導き出すことができます。

于 2013-08-22T16:19:22.583 に答える