Phonetische Matching-Algorithmen
Ein Versuch des Namensabgleichs mit ML-Algorithmen
Angenommen, Sie erstellen ein Projekt, bei dem Sie Wörter/Namen nach ihrer Aussprache sortieren müssen. Sie können String-Matching verwenden, aber möchten Sie, dass alle Aakash heißen? Kein Recht. Hier kommen phonetische Algorithmen ins Spiel. Phonetische Algorithmen sind eine Möglichkeit, Wörter nach ihrer Aussprache zu sortieren. Sie sind unterschiedlicher Art und werden für unterschiedliche Zwecke verwendet. Sie funktionieren jedoch am besten bei Namen von Personen oder Orten, da dort das Problem mit der Aussprache am stärksten auftritt.
String-Matching
String-Matching fällt nicht unter die Kategorie der phonetischen Algorithmen, aber es lohnt sich, es hier zu erwähnen, um eine Vorstellung davon zu bekommen, was wir hier beabsichtigen. Beim String-Matching erhalten wir einen Text (das zu suchende Wort), der auch mit T bezeichnet wird, und ein Muster (der Begriff, den wir suchen möchten), der ebenfalls mit T bezeichnet wird. Basierend auf der Übereinstimmung; Der Algorithmus gibt eine Punktzahl zwischen 0 und 1 zurück, wobei 1 die höchste und 0 die niedrigste ist. Es gibt viele Möglichkeiten, dies zu tun, wie Naive String Matching, KMP usw., aber wir werden nicht zu tief darauf eingehen.
Soundex
Dieser Algorithmus basiert eher auf der Aussprache eines Wortes als auf seiner Schreibweise und fällt somit in die Kategorie der phonetischen Algorithmen. Soundex erstellt einen vierstelligen Code basierend auf ihrer Aussprache. Die Codes können dann verglichen werden, um festzustellen, ob die Wörter gleich klingen. Kleinere Rechtschreibfehler und ähnlich klingende Wörter (unterschiedliche Schreibweise) können besser sortiert werden. Es ist so üblich, dass SQL-Produkte im Allgemeinen Soundex-Algorithmen in ihren Bibliotheksfunktionen haben.
Wenn Sie in einer Datenbank nach einem Nachnamen suchen, sagen Sie „Goyal“. Sowohl „Goel“ als auch „Goyal“ werden gefunden, weil sie gleich klingen und daher denselben Soundex-Code haben.
Metaphon
Metaphone ist eine verfeinerte Version von Soundex. Metaphone verfügt über eine größere Auswahl an Ausspracheregeln und unterschiedliche Schlüssellängen im Vergleich zu Soundex-Schlüsseln mit fester Länge.
Double Metaphone verbessert dies weiter, indem es einen Primär- und einen Sekundärschlüssel zurückgibt. Neben Englisch versucht es, Aussprachen anderer Herkunft wie Griechisch, Französisch, Italienisch, Spanisch und Chinesisch einzubeziehen.
Es gibt auch eine dritte Version, Metaphone 3, die eine Genauigkeit von 99 % für englische Wörter liefert.
NYSIIS (New York State Information and Intelligence System)
NYSIIS basiert auf der gleichen Idee wie Soundex und Metaphone, außer dass es genauere Ergebnisse liefert, da es weniger Ergebnisse unter demselben Code zurückgibt. Das Matching erfolgt durch die Zuweisung spezifischer Indizes für bestimmte Sounds.
Höhlentelefon
Dieser Algorithmus wurde entwickelt, weil Soundex und Metaphone für den Caversham-Datensatz (ein Datensatz aus neuseeländischen Untersuchungen) als ungeeignet befunden wurden. Es wurde ein angepasstes phonetisches Codierungsmodell entwickelt, das ähnlich wie Metaphone im Untersuchungsgebiet (Neuseeland) entworfen wurde.
Ähnlichkeitsfunktionen
Levenshtein-Distanz
Bei zwei Wörtern können wir fragen, wie ähnlich die beiden Wörter sind. Wir können diese Frage auch zwei Sätzen oder Zeichenfolgenfolgen stellen. Um die Ähnlichkeit zu quantifizieren, benötigen wir ein Maß. Die Levenshtein-Distanz ist ein solches Maß. Mit einfachen Operationen (wie Einfügen, Löschen und Ersetzen) können wir bestimmen, wie ein Wort oder eine Sequenz in das andere Wort oder die andere Sequenz umgewandelt wird. Es könnte viele Möglichkeiten geben, dies zu erreichen. Die Levenshtein-Distanz ist die minimale Anzahl von Operationen, die erforderlich ist, um die beiden Eingaben auszugleichen. Je niedriger die Zahl, desto ähnlicher sind die beiden verglichenen Eingaben.
Jaro Winkler Distanz
Jaro-Winkler berechnet den Abstand (ein Maß für die Ähnlichkeit) zwischen Zeichenketten. Die Messskala reicht von 0,0 bis 1,0, wobei 0,0 die unwahrscheinlichste und 1,0 eine positive Übereinstimmung ist.
Kosinus-Ähnlichkeit
Die Kosinusähnlichkeit misst den Kosinus des Winkels zwischen zwei mehrdimensionalen Vektoren. Je kleiner der Winkel, desto höher die Kosinus-Ähnlichkeit.
FAZIT
In Kombination mit Ähnlichkeitsfunktionen können sich phonetische Algorithmen als äußerst hilfreich erweisen, um den Grad der Ähnlichkeit zwischen zwei Wörtern/Namen zu bestimmen, was in Fällen von Cybersicherheit oder Datenbanken im Allgemeinen verwendet werden kann.

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































