Metaphon – Wikipedia

Metaphon ist ein phonetischer Algorithmus, der 1990 von Lawrence Philips veröffentlicht wurde, um Wörter nach ihrer englischen Aussprache zu indizieren.[1] Der Soundex-Algorithmus wird grundlegend verbessert, indem Informationen zu Variationen und Inkonsistenzen in der englischen Rechtschreibung und Aussprache verwendet werden, um eine genauere Codierung zu erzielen, mit der Wörter und Namen, die ähnlich klingen, besser abgeglichen werden können. Ähnlich wie bei Soundex sollten ähnlich klingende Wörter dieselben Tasten haben. Metaphone ist in einer Reihe von Systemen als integrierter Operator verfügbar.

Der ursprüngliche Autor produzierte später eine neue Version des Algorithmus, den er Double Metaphone nannte. Im Gegensatz zum ursprünglichen Algorithmus, dessen Anwendung nur auf Englisch beschränkt ist, berücksichtigt diese Version die Rechtschreibmerkmale einer Reihe anderer Sprachen. Im Jahr 2009 veröffentlichte Lawrence Philips eine dritte Version namens Metaphone 3, die eine Genauigkeit von ungefähr 99% für englische Wörter, nicht englische Wörter, die Amerikanern bekannt sind, und Vornamen und Familiennamen, die in den USA häufig vorkommen, erreicht nach modernen technischen Standards gegen ein Testkabel von vorbereiteten korrekten Codierungen.

Verfahren[edit]

Ursprüngliche Metaphoncodes verwenden die 16 Konsonantensymbole 0BFHJKLMNPRSTWXY. Die ‚0‘ steht für „th“ (als ASCII-Näherung von Θ), ‚X‘ für „sh“ oder „ch“ und die anderen für ihre üblichen englischen Aussprachen. Die Vokale AEIOU werden ebenfalls verwendet, jedoch nur am Anfang des Codes.[2] Diese Tabelle fasst die meisten Regeln in der ursprünglichen Implementierung zusammen:

  1. Löschen Sie doppelte benachbarte Buchstaben mit Ausnahme von C.
  2. Wenn das Wort mit ‚KN‘, ‚GN‘, ‚PN‘, ‚AE‘, ‚WR‘ beginnt, lassen Sie den ersten Buchstaben fallen.
  3. Lassen Sie ‚B‘ fallen, wenn nach ‚M‘ am Ende des Wortes steht.
  4. ‚C‘ wird in ‚X‘ umgewandelt, gefolgt von ‚IA‘ oder ‚H‘ (es sei denn, im letzteren Fall ist es Teil von ‚-SCH-‚, in diesem Fall wird es in ‚K‘ umgewandelt). ‚C‘ verwandelt sich in ‚S‘, gefolgt von ‚I‘, ‚E‘ oder ‚Y‘. Andernfalls wird ‚C‘ in ‚K‘ umgewandelt.
  5. ‚D‘ verwandelt sich in ‚J‘, gefolgt von ‚GE‘, ‚GY‘ oder ‚GI‘. Andernfalls verwandelt sich ‚D‘ in ‚T‘.
  6. Lassen Sie ‚G‘ fallen, wenn ‚H‘ folgt und ‚H‘ nicht am Ende oder vor einem Vokal steht. Lass ‚G‘ fallen, wenn ‚N‘ oder ‚NED‘ folgt und ist am Ende.
  7. ‚G‘ wandelt sich in ‚J‘ um, wenn vor ‚I‘, ‚E‘ oder ‚Y‘, und es ist nicht in ‚GG‘. Andernfalls verwandelt sich ‚G‘ in ‚K‘.
  8. Lassen Sie ‚H‘ fallen, wenn nach dem Vokal und nicht vor einem Vokal.
  9. ‚CK‘ verwandelt sich in ‚K‘.
  10. ‚PH‘ verwandelt sich in ‚F‘.
  11. ‚Q‘ verwandelt sich in ‚K‘.
  12. ‚S‘ wird in ‚X‘ umgewandelt, gefolgt von ‚H‘, ‚IO‘ oder ‚IA‘.
  13. ‚T‘ verwandelt sich in ‚X‘, gefolgt von ‚IA‘ oder ‚IO‘. ‚TH‘ wird zu ‚0‘. Lassen Sie ‚T‘ fallen, wenn gefolgt von ‚CH‘.
  14. ‚V‘ verwandelt sich in ‚F‘.
  15. ‚WH‘ verwandelt sich am Anfang in ‚W‘. Lassen Sie ‚W‘ fallen, wenn kein Vokal folgt.
  16. ‚X‘ verwandelt sich am Anfang in ‚S‘. Andernfalls wird ‚X‘ in ‚KS‘ umgewandelt.
  17. Lassen Sie ‚Y‘ fallen, wenn kein Vokal folgt.
  18. ‚Z‘ verwandelt sich in ‚S‘.
  19. Lass alle Vokale fallen, es sei denn, es ist der Anfang.

Diese Tabelle stellt keine vollständige Beschreibung des ursprünglichen Metaphon-Algorithmus dar, und der Algorithmus kann daraus nicht korrekt codiert werden. Das ursprüngliche Metaphon enthielt viele Fehler und wurde durch das Doppelmetaphon ersetzt. Das Doppelmetaphon und das Originalmetaphon wurden wiederum durch das Metaphon 3 ersetzt, wodurch Tausende von Fehlkodierungen korrigiert werden, die von den ersten beiden Versionen erzeugt werden.

Um Metaphone zu implementieren, ohne eine (Quellcode-) Kopie von Metaphone 3 zu erwerben, kann die Referenzimplementierung von Double Metaphone verwendet werden.[3] Alternativ wurde Version 2.1.3 von Metaphone 3, eine frühere Version von 2009 ohne eine Reihe von Codierungskorrekturen, die in der aktuellen Version, Version 2.5.4, vorgenommen wurden, unter den Bedingungen der BSD-Lizenz über das OpenRefine-Projekt verfügbar gemacht. [4]

Doppelmetaphon [edit]

Der phonetische Codierungsalgorithmus für Doppelmetaphone ist die zweite Generation dieses Algorithmus. Die Umsetzung wurde in der Juni 2000-Ausgabe von beschrieben C / C ++ Benutzerjournal.[5] Es bietet eine Reihe grundlegender Designverbesserungen gegenüber dem ursprünglichen Metaphon-Algorithmus.

Es heißt „Double“, weil es sowohl einen primären als auch einen sekundären Code für eine Zeichenfolge zurückgeben kann. Dies erklärt einige mehrdeutige Fälle sowie mehrere Varianten von Nachnamen mit gemeinsamen Vorfahren. Wenn Sie beispielsweise den Namen „Smith“ codieren, erhalten Sie einen Primärcode von SM0 und ein sekundärer Code von XMT, während der Name „Schmidt“ einen Primärcode von ergibt XMT und ein sekundärer Code von SMT-beide haben XMT gemeinsam.

Double Metaphone versucht, unzählige Unregelmäßigkeiten in englischer Sprache slawischer, germanischer, keltischer, griechischer, französischer, italienischer, spanischer, chinesischer und anderer Herkunft zu erklären. Daher verwendet es einen viel komplexeren Regelsatz für die Codierung als sein Vorgänger. Beispielsweise werden ungefähr 100 verschiedene Kontexte der Verwendung des Buchstabens C allein getestet.

Metaphon 3[edit]

Im Oktober 2009 wurde eine professionelle Version veröffentlicht, die vom selben Autor, Lawrence Philips, entwickelt wurde. Es ist ein kommerzielles Produkt, das als Quellcode verkauft wird. Metaphone 3 verbessert die phonetische Codierung von Wörtern in englischer Sprache, nicht englischen Wörtern, die Amerikanern vertraut sind, sowie Vornamen und Familiennamen, die in den USA häufig vorkommen. Insbesondere die Kodierung von Eigennamen wird erheblich verbessert.[6] Der Autor behauptet, dass es im Allgemeinen die Genauigkeit für alle Wörter von ungefähr 89% des Doppelmetaphons auf 98% verbessert. Entwickler können jetzt auch Schalter im Code festlegen, um zu bewirken, dass der Algorithmus Metaphonschlüssel codiert. 1) Nicht-Anfangsvokale werden berücksichtigt, und 2) stimmhafte und stimmlose Konsonanten werden unterschiedlich codiert. Auf diese Weise kann die Ergebnismenge genauer fokussiert werden, wenn der Entwickler feststellt, dass die Suchergebnisse zu viele Wörter enthalten, die dem Suchbegriff nicht genau genug ähneln.[7] Metaphone 3 wird als C ++ -, Java-, C # -, PHP-, Perl- und PL / SQL-Quelle verkauft, Ruby- und Python-Wrapper, die auf ein Java-Jar zugreifen, sowie Metaphone 3 für die spanische und deutsche Aussprache als Java- und C # -Quelle.[8] Die neueste Version des Metaphone 3-Algorithmus ist v2.5.4, veröffentlicht im März 2015. Der Metaphone3-Java-Quellcode für eine frühere Version, 2.1.3, ohne eine große Anzahl von Codierungskorrekturen, die in der aktuellen Version, Version 2.5.4, vorgenommen wurden, war ist Teil des OpenRefine-Projekts und öffentlich sichtbar.[9]

Häufige Missverständnisse[edit]

Es gibt einige Missverständnisse über die Metaphon-Algorithmen, die behoben werden sollten. Die folgenden Aussagen sind wahr:

  1. Alle von ihnen sind so konzipiert, dass sie reguläre „Wörterbuch“ -Wörter ansprechen, nicht nur Namen und
  2. Metaphon-Algorithmen tun dies nicht phonetische Darstellungen der eingegebenen Wörter und Namen erzeugen; Vielmehr ist die Ausgabe absichtlich ungefähr phonetische Darstellung nach diesem Standard:
  • Wörter, die mit einem Vokalton beginnen, haben ein ‚A‘, das einen beliebigen Vokal darstellt, als erstes Zeichen der Codierung (in Double Metaphone und Metaphone 3 – Original-Metaphon behält nur den tatsächlichen Vokal bei).
  • Vokale nach einem anfänglichen Vokalton werden ignoriert und nicht codiert, und
  • stimmhafte / stimmlose Konsonantenpaare werden derselben Codierung zugeordnet. (Beispiele für stimmhafte / stimmlose Konsonantenpaare sind D / T, B / P, Z / S, G / K usw.).

Diese ungefähre Codierung ist erforderlich, um zu berücksichtigen, wie englische Sprecher ihre Aussprachen und Rechtschreibfehler variieren oder auf andere Weise Wörter und Namen variieren, die sie buchstabieren möchten. Vokale sind natürlich notorisch sehr variabel. Britischsprachige beschweren sich oft darüber, dass die Amerikaner „T“ wie „D“ aussprechen. Bedenken Sie auch, dass alle englischen Sprecher häufig ‚Z‘ aussprechen, wobei ‚S‘ geschrieben wird, fast immer, wenn ein Substantiv, das mit einem stimmhaften Konsonanten oder einer Flüssigkeit endet, pluralisiert wird, zum Beispiel „Jahreszeiten“, „Strahlen“, „Beispiele“, usw. Wenn Vokale nach einem anfänglichen Vokalton nicht codiert werden, können Wörter gruppiert werden, bei denen ein Vokal und ein Konsonant in der Rechtschreibfehler- oder alternativen Aussprache transponiert werden können.

Siehe auch[edit]

Verweise[edit]

Externe Links[edit]

Metaphon-Algorithmen für andere Sprachen[edit]