Probleme mit Soundex


  1. 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.

  2. Tippfehler Intoleranz: Zufällige Tippfehler sind unvermeidlich. Bei der Eingabe „Msith“ („Smith“ mit der Umstellung der Buchstaben) findet Soundex nichts.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. Ä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.

  9. 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.

  10. 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”.

  11. 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.
  12. 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.