bezugnehmend auf meinen Post 'Straßen- und Ortsnamen korrekt schreiben' fiel mir ein, dass ich vor etlichen Jahren schon einmal (ich denke in einem uralt AHK Forum) eine Ähnliche Frage gestellt und es entstand in Zusammenarbeit mit einigen User dort ein Script, mit dem man die Ähnlichkeit 2er Strings beurteilen, bzw. ermitteln konnte.
Leider ist dieses Script weder im Netz auffindbar, noch habe ich selber es noch irgendwo gespeichert.
Ich hatt es in irgendein Tool eingebaut, kann mich aber nicht mehr so wirklich erinnern.
Daher habe ich nach langer Suche nun beschlossen, quasi neu anzufangen. Grundlage für mein Script war damals, so weit ich mich einnern kann, de Ermittlung der Levenshtein-Distanz. Ich habe bisher folgenden Code, der auch gut funktioniert:
Code: Select all
DLDist(s, t)
{
StringLen, m, s
StringLen, n, t
If m = 0
Return, n
If n = 0
Return, m
d0_0 = 0
Loop, % 1 + m
d0_%A_Index% = %A_Index%
Loop, % 1 + n
d%A_Index%_0 = %A_Index%
ix = 0
iy = -1
Loop, Parse, s
{
sc = %A_LoopField%
i = %A_Index%
jx = 0
jy = -1
Loop, Parse, t
{
a := d%ix%_%jx% + 1, b := d%i%_%jx% + 1, c := (A_LoopField != sc) + d%ix%_%jx%, d%i%_%A_Index% := d := a < b ? a < c ? a : c : b < c ? b : c
If (i > 1 And A_Index > 1 And sc == tx And sx == A_LoopField)
d%i%_%A_Index% := d < c += d%iy%_%ix% ? d : c
jx++
jy++
tx = %A_LoopField%
}
ix++
iy++
sx = %A_LoopField%
}
Return, d%m%_%n%
}
Vielleicht kann mir ja jemand helfen.
Gucky.