| 1 |
Hatte nen ähnlichen Anwendungsfall und habs dort mit Normalisierung gelößt. Eine Alternative würde mich aber auch interessieren.
– Floyd 22.10.09
|
mysql> SELECT SOUNDEX('Hello');
-> 'H400'
mysql> SELECT SOUNDEX('Quadratically');
-> 'Q36324'text1 = 'Berlin Hbf'
text2 = 'Berlin Hautbahnhof'
Wenn GleichheitSchonmalBestätigt(text1,text2) dann Fertig()
token1 = Token aus text1
token2 = Token aus text2
fast = 0
Für alle t1 in token 1
Für alle t2 in token2
Wenn IstAehnlich(t1,t2) dann fast = 1
Wenn fast = 1 dann
Wenn FrageUserObGleich(text1,text2) dann MerkeDassGleich(text1,text2)
| 4 |
Um "Berlin Hbf" und "Hbf Berlin" als gleich zu erkennen muss man kein neuronales Netz bemühen. Hier genügt es den String jeweils anhand bestimmter Trenner (Leerzeichen, Bindestrich, Komma, ...) in Teilstrings zu zerlegen und diese Teilstrings dann in eine eindeutige und nachvollziehbare (z.B. alphabetische) Reihenfolge zu bringen, wieder zu verketten und dann erst zu vergleichen.
Das Ganze noch mit Levenshtein kombiniert sollte schon ganz brauchbare Ergebnisse bringen. – FalkP 23.10.09
|
|
| 1 |
Sicherlich wäre es praktischer diese Transformation im Zuge des Normalisierens durchzuführen wie von dir beschrieben.
Das ANN stellt eine Alternative dar mit der in diesem Zuge auch eine "kontextbasierte" Suche ermöglicht wird. Das wird in diesem Fall vermutlich nicht nötig sein, aber es ist möglich ;) – gfoidl 23.10.09
|