So lassen sich auch in C# Wörter mit Soundex kodieren


Der folgende Code zeigt eine Möglichkeit, Soundex in C# zu implementieren. Es gibt zwar auch andere Methoden, doch diese stellt einen guten Kompromiss zwischen Lesbarkeit und Performance dar.

Dieser Code arbeitet sich durch die bereitgestellten Daten. Er bestimmt, welche Kodierung – falls überhaupt – auf das jeweilige Zeichen anzuwenden ist. Sollten Kodierungen kürzer als vier Zeichen sein, werden sie vor der Ausgabe noch mit Nullen aufgefüllt.

So lassen sich unterschiedliche Soundex-Kodierungen abstufen

Manchmal haben ähnliche Wörter eine unterschiedliche Soundex-Kodierung. Als Beispiel sollen die beiden englischen Wörter „lake“ und „bake“ dienen. Sie klingen sehr ähnlich, aber ihre Kodierung ist nicht identisch. Aus diesem Grund gibt es im Microsoft SQL Server die Funktion Difference. Sie bestimmt, wie ähnlich sich zwei Wörter sind. Die Skala reicht von eins bis vier. dabei steht eine Vier für absolute Übereinstimmung, eine Eins für überhaupt keine Übereinstimmung.

Im Gegensatz zum Soundex-Algorithmus wurde die Formel der Difference-Funktion nicht öffentlich. Folgende Regeln kommen jedoch der in der Difference-Funktion von SQL verwendeten Formel recht nahe:

  1. Beide Wörter laufen durch Soundex.
  2. Stimmen die Soundex-Kodierungen überein, ist der Wert 4. Stimmen sie nicht überein, folgt Schritt 3.
  3. Kommen die drei letzten Zeichen der ersten Kodierung auch in der zweiten vor, so liegt der Wert bei 3. Weiter mit Schritt 7.
  4. Kommen die zwei letzten Zeichen der ersten Kodierung auch in der zweiten vor, so liegt der Wert bei 2. Weiter mit Schritt 7.
  5. Kommen die beiden mittleren Zeichen der ersten Kodierung auch in der zweiten vor, so ist der Wert 2. Weiter mit Schritt 7.
  6. Kommt das zweite, dritte oder vierte Zeichen der ersten Kodierung auch in der zweiten vor, so steigt der Wert für jede Übereinstimmung um 1.
  7. Entspricht das erste Zeichen der ersten Kodierung dem ersten Zeichen der zweiten Kodierung, steigt der aktuelle Wert ebenfalls um 1.

Es handelt sich hierbei nur um ein grobes Regelwerk. Doch die Ergebnisse entsprechen weitestgehend der Difference-Funktion in SQL. Nachstehend folgen einige Beispiele, die in SQL gleiche Ergebnisse erzielen:

  • Zach & Zac – 4
  • lake & bake – 3
  • Brad & lad – 2
  • horrible & great – 1

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Chrome 131 schließt zwölf Sicherheitslücken

Eine schwerwiegende Anfälligkeit hebelt die Sicherheitsfunktion Seitenisolierung auf. Betroffen sind Chrome für Windows, macOS und…

2 Tagen ago

DeepL Voice mit KI für Sprach- übersetzungen

DeepL Voice ermöglicht Live‑Übersetzung von Meetings und Gesprächen in 13 Sprachen.

2 Tagen ago

November-Patchday: Microsoft schließt Zero-Day-Lücken in Windows

Betroffen sind Windows und Windows Server. Microsoft patcht aber auch Schwachstellen in Excel, Word und…

2 Tagen ago

LG zeigt elastisches OLED-Display

Es lässt sich um bis zu 50 Prozent dehnen. Allerdings besitzt es eine deutliche geringere…

3 Tagen ago

BSI zu Cybersicherheit: Bedrohungslage bleibt angespannt

Allerdings nimmt auch die Resilienz gegenüber Cyberattacken zu. Das BSI hat außerdem die Cybersicherheit anstehender…

3 Tagen ago

IT-Ausgaben in Europa steigen 2025 voraussichtlich um 8,7 Prozent

Es ist das größte Wachstum in einem Jahr seit 2021. Unter anderem lässt das Interesse…

4 Tagen ago