 |
 |
 |
 |
|
Probleme
mit Soundex
- Abhängigkeit vom ersten Buchstaben.
Der Soundex Algorithmus benutzt den ersten Buchstaben des Wortes als
einen Schlüsselbestandteil des Codes. Die Wörter, die
mit verschiedenen Buchstaben beginnen, werden nicht als gleich erkannt.
Beispiel: es wird „Corbin“ getippt und obwohl
„Korbin“ in der Datenbank ist, wird es durch die
Soundex-Suche nicht gefunden.
- Tippfehler Intoleranz: Zufällige
Tippfehler sind unvermeidlich. Bei der Eingabe
„Msith“ („Smith“ mit der
Umstellung der Buchstaben) findet Soundex nichts.
- Unterschiedliche Transkriptionssysteme. Es gibt
vielfache Verfahren, wie man die Wörter, die nicht auf
lateinisch geschrieben sind, in lateinische Buchstaben umzuwandeln hat.
Z.B. ein chinesischer Name kann entweder als "Hsiao" oder als "Xiao"
richtig geschrieben sein. Die Soundex-Codes dieser Varianten sind
unterschiedlich. Das bedeutet, der Soundex Algorithmus hat keine
Korrektur, die auf der kulturellen Verschiedenartigkeit basiert.
- Namen mit Partikeln. In vielen Kulturen
erhalten die Namen zusätzliche Elemente, die je nach der
Situation sowohl vor dem Namen stehen als auch weggelassen werden
können. Z.B., der arabische Name "Alhameed" kann ohne den
Partikel "Al" als "Hameed" (oder "Hamid", "Hamed") geschrieben sein.
Beide Varianten können sich auf dieselbe Person beziehen.
Soundex kann diese Arten der Abweichungen nicht anpassen.
- Perzeptuelle Unterschiede. Wenn der Name durch
das Gehör erfasst wird, kann die perzeptuelle Variante die
schriftliche Form beeinflussen. Beispiel: der russische Name "Tkachev"
kann auch als "Kachov" oder "Tekacheff" gehört werden.
Für den nicht russischen Zuhörer ist der erste
Buchstabe „T“ kaum zu hören.
- Stille Konsonanten. Soundex kann nicht die
phonetische Ähnlichkeit zwischen Namen mit stillen Konsonanten
erfassen und korrigieren falls ein solcher weggelassen wird. Z.B. der
Name "Coghburn" kann als "Coburn" geschrieben werden, oder "Deighton"
kann als "Dayton" erfasst werden. Soundex kodiert diese Paare mit
verschiedenen Codes.
- Unterschiede in der Namenssyntax. Es werden die
verschiedenen Reihenfolgen von Vorname, zweitem Vorname und Nachname je
nach kulturellen Unterschieden verwendet. Beispiel: der Name "Mohamed
Afzal Aziz" kann in einer Datenbank mit "Mohamed" als Vorname, "Afzal"
als zweitem Vornamen, und "Aziz" als Nachname gefunden werden. Bei
anderer Eingabe kann "Mohamed" als Vorname und „Afzal Aziz"
als Nachname gespeichert sein. Soundex erlaubt nicht, diese
Namenstrukturen anzupassen.
- Äquivalenz von Namen. Einige Namen
können mit keiner logischen approximativen Suche gefunden
werden. Beispiel: Bei der Suche nach dem Geburtstag von "Peggy
Smith“ wird wahrscheinlich "Margaret Smith“
getippt. In asiatische Ländern, z.B. wie China, sind die
äquivalente Namen weit verbreitet. Z.B. die Namen "Ng" und
"Wu" werden mit gleichen chinesischen Buchstaben geschrieben und auf
dieselbe Person bezogen.
- Initialen. Die Initialen werden häufig
für die Abkürzung von Namen benutzt. Die Eingabe
für "Michael Kissinger" und "M. Kissinger" gehören
sicher zu einer Person. Aber bei einer Standardabfrage auf "Michael
Kissinger" wird mit Soundex nicht "M. Kissinger" zurückgegeben
und umgekehrt.
- Unsortierte Ergebnisse. Soundex gruppiert die
Namen mit einem gemeinsamen Code und kann dabei nicht den Grad der
Ähnlichkeit zwischen Namen innerhalb einer Gruppe errechnen.
Das bedeutet, dass die Ergebnisse nicht richtig bewertet werden
können und die wahrscheinlichen Antworten erst nach
unpassenden Namen gelistet werden. Beispiel: eine Abfrage nach dem
Namen “Deighton” in einer Namensdatenbank lieferte
eine Liste von 17 Namen mit solch unwahrscheinlichen Varianten wie
“Desiyatnikov” und “Degaetano”.
- Die schwache Genauigkeit. Der Soundex
Algorithmus reduziert die Unterschiede zwischen den Strings der
Buchstaben dermaßen, dass viele offensichtlich unpassende
Namen bei der Suche zurückgegeben werden. Beispiel: die Namen
"Courtmanche", "Corradino", "Cartmill" und "Cortinez" werden bei einer
Abfrage nach "Criton" zurückgegeben. Diese
überflüssige Information wird als ein
großer Nachteil aus Sicht der Softwareentwickler beurteilt.
Zusammenfassung
Generell läßt eine
Schlüsselbasierte Kodierung keine Ähnlichkeitsanalyse
zu. Die Begriffe passen oder eben nicht. D.h. häufig wird ein
Begriff als gleich angesehen, der tatsächlich sehr
unähnlich ist, ebenso häufig werden relativ
ähnliche Begriffe als ungleich angesehen. Besser sind
Verfahren, die einen kontinuierlichen Übergang von
nicht-passend zu passend-ermöglichen wie die sogenannte
Edit-Distanz oder Levensthein-Algorithmus,
der einzelne Fehler zählt und bewertet.
|
|