Soundex in Python
-
Einführung in
soundex
in Python -
Verwenden Sie
soundex
in Python -
Dinge, die die
soundex
-Funktion ignoriert -
Regeln von
soundex
in Python - Abschluss
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.
- Erstens ist es nicht gut geeignet, um Namen aus anderen Sprachen als Englisch zu indizieren, da der
soundex
-Code auf der englischen Phonetik basiert. - Zweitens kann der
soundex
-Code für einen bestimmten Namen je nach verwendetem englischen Dialekt variieren. Beispielsweise würde der NameSmith
im allgemeinen amerikanischen Englisch alsS530
kodiert, im südlichen Englisch jedoch alsS520
. - Drittens kann das Soundex-Verfahren manchmal zu zweideutigen Ergebnissen führen, insbesondere wenn zwei oder mehr Namen denselben
soundex
-Code haben. Beispielsweise haben die NamenSmith
undSmythe
beide densoundex
-CodeS530
, was es schwierig macht, einen bestimmten Namen zu finden, wenn ein Soundex-basierter Index verwendet wird. - 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 alsS315
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 is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn