Soundex in Python

Zeeshan Afridi 21 Juni 2023
  1. Einführung in soundex in Python
  2. Verwenden Sie soundex in Python
  3. Dinge, die die soundex-Funktion ignoriert
  4. Regeln von soundex in Python
  5. Abschluss
Soundex in Python

Die soundex-Funktion für Python ist eine Funktion, die eine Textzeichenfolge in einen Soundex-Code umwandelt. Es ist hilfreich, um Namen in Datenbanken zu indizieren oder ähnliche Namen zu finden.

Der Soundex-Code für einen Namen basiert darauf, wie er klingt, nicht wie er geschrieben wird. Es ist ein praktisches Werkzeug zum Vergleichen von Wörtern, die unterschiedlich ausgesprochen werden, aber mit der genauen Schreibweise.

Dies ist bei der Suche nach Namen in Datenbanken von Vorteil.

Einführung in soundex in Python

Die Funktion soundex ist ein einfacher phonetischer Algorithmus, der zur Codierung von Zeichenfolgen verwendet wird. Der Algorithmus ist darauf ausgelegt, Codes zu erzeugen, die denen ähnlich sind, die vom Soundex-System erzeugt werden.

Die Funktion ist in Python geschrieben und kann problemlos in jedes Python-Projekt implementiert werden. Die Funktion soundex nimmt eine Zeichenfolge als Eingabe und gibt einen Code zurück, der auf dem Klang der Zeichenfolge basiert.

Es weist jedem Wort einen Code zu, je nachdem, wie es ausgesprochen wird, sodass Wörter, die unterschiedlich ausgesprochen werden, aber denselben Code haben, als gleichwertig angesehen werden. Es kann eine große Hilfe bei der Suche nach Namen sein, die möglicherweise unterschiedlich geschrieben, aber gleich ausgesprochen werden.

Es kann nützlich sein, wenn Sie Wörter vergleichen, die unterschiedlich ausgesprochen werden, aber die genaue Schreibweise haben. Zum Beispiel haben Katze und Fledermaus denselben soundex-Code.

Verwenden Sie soundex in Python

Die Funktion soundex in Python nimmt einen String als Eingabe und gibt einen Code aus, der den Klang des Strings darstellt. Der Code basiert auf dem Klang der Zeichenfolge, nicht auf der Rechtschreibung.

Dies macht es hilfreich, Namen zu finden, die unterschiedlich ausgesprochen werden, aber denselben Klang haben.

Das soundex-Verfahren ist ein Mittel zur klanglichen Erschließung von Namen. Es ist ein einfacher phonetischer Algorithmus zum Indizieren von Wörtern nach Ton, wie sie im Englischen ausgesprochen werden.

Das Ziel ist es, einen Soundex-Code zu erstellen, der den wesentlichen Klang des Namens erfasst und dabei Unterschiede in der Schreibweise außer Acht lässt.

Um die Funktion soundex zu verwenden, müssen Sie zuerst das Modul importieren, das sie enthält; dann können Sie die Funktion mit einem String als Argument aufrufen. Die Funktion gibt den Soundex-Code für die Zeichenfolge zurück.

Der Soundex-Code ist ein vierstelliger Code, der verwendet wird, um die Aussprache eines Namens darzustellen. Der Code wird aus dem ersten Buchstaben des Namens abgeleitet, gefolgt von drei Zahlen, die die drei Konsonanten des Namens darstellen.

Der Code ist so konzipiert, dass er aussprechbar ist, sodass Wörter mit ähnlicher Aussprache den gleichen Code haben.

Beispielcode:

# First, we will create a Soundex generator function
def soundex_generator(token):

    # Now Convert the word to upper
    token = token.upper()
    soundex = ""

    # Will Retain the First Letter
    soundex += token[0]

    # Now, will Create a dictionary that maps
    # letters to respective Soundex
    # codes. Vowels and 'H', 'W' and
    # 'Y' will be represented by '.'

    dictionary = {
        "BFPV": "1",
        "CGJKQSXZ": "2",
        "DT": "3",
        "L": "4",
        "MN": "5",
        "R": "6",
        "AEIOUHWY": ".",
    }

    # Now encode as per the dictionary
    for char in token[1:]:
        for key in dictionary.keys():
            if char in key:
                code = dictionary[key]
                if code != ".":
                    if code != soundex[-1]:
                        soundex += code

    # Trim or Pad to make Soundex a
    # 7-character code
    soundex = soundex[:7].ljust(7, "0")
    return soundex


# driver code
print(soundex_generator("Thecodeishere"))

Ausgang:

T232600

Dinge, die die soundex-Funktion ignoriert

Der soundex-Prozess ignoriert nicht-alphabetische Zeichen in einem Namen, daher werden Satzzeichen und Leerzeichen nicht berücksichtigt.

Zudem kodiert soundex den Anfangsbuchstaben eines Nachnamens nur dann, wenn es sich um einen Konsonanten handelt, Nachnamen, die mit Vokalen beginnen, werden also nicht kodiert.

Schließlich kodiert soundex Namen nach ihrer Aussprache, sodass Varianten desselben Namens, die unterschiedlich ausgesprochen werden (wie Smith und Smyth), unterschiedliche Codes haben.

Regeln von soundex in Python

Der Soundex-Prozess hat jedoch mehrere Regeln.

  1. Erstens ist es nicht gut geeignet, um Namen aus anderen Sprachen als Englisch zu indizieren, da der soundex-Code auf der englischen Phonetik basiert.
  2. Zweitens kann der soundex-Code für einen bestimmten Namen je nach verwendetem englischen Dialekt variieren. Beispielsweise würde der Name Smith im allgemeinen amerikanischen Englisch als S530 kodiert, im südlichen Englisch jedoch als S520.
  3. Drittens kann das Soundex-Verfahren manchmal zu zweideutigen Ergebnissen führen, insbesondere wenn zwei oder mehr Namen denselben soundex-Code haben. Beispielsweise haben die Namen Smith und Smythe beide den soundex-Code S530, was es schwierig macht, einen bestimmten Namen zu finden, wenn ein Soundex-basierter Index verwendet wird.
  4. Viertens ist das Soundex-Verfahren nicht sehr effektiv bei der Indizierung von Namen, die anders ausgesprochen als geschrieben werden. Zum Beispiel wird der Name Stevenson STEH-ven-son ausgesprochen, aber er würde aufgrund seiner Schreibweise als S315 kodiert, was es schwierig macht, einen Namen zu finden, wenn ein Soundex-basierter Index verwendet wird.

Insgesamt ist das Soundex-Verfahren ein einfaches und effektives Mittel, um Namen nach Klang zu indizieren. Es hat jedoch einige Einschränkungen, die bei der Verwendung berücksichtigt werden sollten.

Abschluss

Zum Abschluss des Artikels über soundex in Python haben wir die Funktionsweise und Regeln von soundex besprochen. Außerdem haben wir ein praktisches Beispiel besprochen, das die Funktionsweise von soundex in Python demonstriert.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn