Wie finde ich schwer zu schreibende Vornamen?

16

Hier ist eine Frage, die meiner Meinung nach mit Data Mining und einem ausgeklügelten Algorithmus gelöst werden könnte, aber ich weiß nicht genau, wie. Hinweise auf die zu verwendenden Datenquellen und den anzuwendenden Algorithmus sind willkommen.

Hintergrund: Ich bin ein rumänisch-ungarischer Staatsbürger, der ein Baby mit einem polnisch-ukrainischen Staatsbürger erwartet und uns noch nicht klar ist, in welchem ​​Land wir uns niederlassen wollen. Wie Sie vielleicht erwarten können, ist die Wahl eines Vornamens von äußerster Wichtigkeit und eine heiße Debatte. Von meiner Seite bin ich immer noch traumatisiert von all dem Ärger, den ich durchmachen musste, als jemand meinen Namen falsch buchstabierte, als ich von einem Land in ein anderes zog. Wenn Sie zum Beispiel "Adrian" genannt würden, wären Sie in Rumänien gesegnet, nur um herauszufinden, dass Sie letztendlich "Adri e n" sind, handelt es sich um ein offizielles französisches Dokument. Deshalb muss ich nur dafür sorgen, dass der Name des Babys in einigen europäischen Ländern höchst unwahrscheinlich falsch geschrieben wird.

Problemstellung: In einer Reihe von Ländern, z. B. Frankreich, Deutschland, Schweden, Polen und Rumänien, finden Sie die Liste der Vornamen, die bei korrekter Aussprache von den Einheimischen wahrscheinlich nicht falsch geschrieben werden.

Formaler: Sei p (c, n) eine Funktion, die die Wahrscheinlichkeit zurückgibt, dass der Name n in Land c falsch geschrieben ist . Wenn C eine Menge von Ländern und p eine Wahrscheinlichkeit gegeben ist, finde N eine Menge von Vornamen, so dass

für alle nN und cC ist p (c, n) <p₀

Erste Überlegungen : Das Kernproblem ist die Implementierung von p (c, n) . Man könnte versuchen, es mit einer Heuristik anzunähern. Es ist klar, dass ein Name wahrscheinlich in zwei Fällen falsch geschrieben wird:

  1. Es wird in diesem Land wenig benutzt.
  2. Es ähnelt einem anderen Namen, der in diesem Land nicht selten verwendet wird.

Ich bin mir nicht sicher, wie ich das Internet, z. B. Wikipedia, nutzen könnte, um diese beiden Fragen effizient zu beantworten. Wie würde man nur ziemlich häufig verwendete Namen in einem Land auflisten? Wie würde man nach ähnlich geschriebenen suchen?

user1202136
quelle
1
Ich bin mir nicht sicher, ob die Beliebtheit die Wahrscheinlichkeit von Rechtschreibfehlern im Vergleich zur geringen Bearbeitungsentfernung zu anderen Namen stark beeinflussen würde. ZB Hanna klingt ähnlich wie Hannah und Anna und Lucas ist ähnlich wie Luca und Lukas . Sobald Sie eine Liste mit Namen für jedes Land in die Hände bekommen haben, können Sie anfangen, indem Sie sich nach geringen Bearbeitungsentfernungen gruppieren.
amon
Ich denke, das hat auch mit Popularität zu tun. Niemand würde Anna auf Rumänisch buchstabieren , da double n in dieser Sprache nur seltsam ist. Ebenso würde eine französische Person wahrscheinlich Christian schreiben, selbst wenn Sie es ohne h aussprechen . (Wortspiel beabsichtigt.: D)
user1202136
5
Der pragmatische Ansatz wäre die Verwendung einer GUID.
Toniedzwiedz
1
Großartige XKCD-Referenz. Aber vergiss nicht die kleinen Bobby-Tische ;-) xkcd.com/327
Mawg sagt, dass er Monica
Ich würde in Betracht ziehen, Vokale in diesen Sprachen zu vergleichen. Mein Deutsch ist fließend, aber ich mache immer noch ein Chaos mit Ö
Mawg sagt, dass Monica

Antworten:

15

Es gibt einige Ansätze, die für einige Sprachen besser funktionieren als für andere. Beispielsweise wurde Soundex (und eine andere Beschreibung, die mir gefällt ) für die englische Aussprache von Namen entwickelt. Mit Soundex Michaelwird M240. Dies hat mehrere Schritte:

  1. Der erste Buchstabe ist isoliert. ( Mund ichael)
  2. Alle Vokale werden vom Rest ( Mund chl) entfernt
  3. Konsonanten werden ersetzt
    • c -> 2
    • l -> 4
  4. Linke Pad-Nullen.

Die Gruppierung der Konsonant Konvertierungen werden auf der Grundlage ihrer klangliche Ähnlichkeit - B, F, Pund Valle Karte 1.

Und es gibt Variationen im Laufe der Zeit . Es ist besonders nützlich in der Genealogie, wo sich die Schreibweise eines Namens im Laufe der Zeit ändern kann, die Aussprache jedoch ähnlich bleibt.


Es gibt auch Ansätze wie die Übereinstimmungsbewertung, die von den Fluggesellschaften für Namen (und nicht für amerikanische Genealogie) entwickelt wurde.

Die Kodierung des Match-Rating-Ansatzes (MRA) lautet:

  1. Lösche alle nicht führenden Vokale ( Michaelwird Mchlund Anthonywird Anthny)
  2. Entfernen Sie die zweite Konstante von Doppelwerten
  3. Wenn die Zeichenfolge länger als 6 Zeichen ist, reduzieren Sie die verbleibende Zeichenfolge auf 6 Zeichen, indem Sie die ersten drei und die letzten drei Zeichen verwenden.

Die vollständige Spezifikation dazu finden Sie auf archive.org - beachten Sie, dass es "nicht klein" ist (das gedruckte Formular umfasst 214 Seiten).

Die Vergleiche haben einen Übereinstimmungsschwellenwert, der davon abhängt, wie lang der Text ist.

Es gibt auch andere phonetische Algorithmen .


Daher würde ich Sie ermutigen, entweder den Soundex so wie er ist, den Match-Rating-Ansatz so wie er ist, oder den Soundex basierend auf den rumänischen Konsonanten und den polnischen Konsonanten zu modifizieren .

Denken Sie daran , dass mit soundex werden die Konsonanten gruppiert (Polnisch, m, n, ɲsind alle Nasalkonsonanten gruppiert werden, und Sie würden die Lippen-, Zahn wahrscheinlich Gruppe und alveolaren Plosive - seien sie stimmlos oder zusammen geäußert - gewährt, das tue ich nicht Ich kann Polnisch, also weiß ich nicht, ob ich nur Dinge sage, die dort nicht wahr sind.

Verstecken Sie dann alle Namen in der Datenbank in die beiden verschiedenen Soundex-Systeme und finden Sie heraus, welche Namen in den verschiedenen Sprachen die geringste Anzahl von Kollisionen aufweisen. Dies gibt Ihnen eindeutige Namen. Das zeigt sich Smithalso nicht als Smyth.


Dies löst jedoch nur den "Namen, der wahrscheinlich mit anderen Namen kollidiert und verhört wird". Es spricht nicht die andere Art von "richtig gehört, falsch niedergeschrieben" an, und deshalb sollte man sich auf gebräuchliche Namen konzentrieren.

Zum Beispiel Michaelwar ein sehr verbreiteter Name in den USA von Anfang 1950 bis Ende 1970. Es war sehr beliebt . Aus irgendeinem Grund war der Name Michealjedoch in den 1950er Jahren sehr beliebt (bis zum 83. gebräuchlichsten Namen auf seinem Höhepunkt). Und ich bin mir sicher, dass die Namen der genannten Personen Michealständig falsch geschrieben wurden.

Daher sollten Sie sich auf Namen konzentrieren, bei denen es einen Namen gibt, der die Popularität des Namens für eine bestimmte Aussprache dominiert. Der Blick auf einen anderen Daten der Verbraucher für die Namen von Jahr können Sie sehen , dass Namen mit Jam beginnt ... für einen Jungen sind ein einziges Chaos mit Jamaal, Jamal, Jamarund andere. Im übrigen haben diese Namen etwas andere soundexes für amerikanisches ( J540, J540und J560- das lund rsind in verschiedenen Gruppen , obwohl sie eng in phonetics beziehen). Für jemanden aus Japan gibt es jedoch nur einen Laut in der phonetischen Region, in der lundrwerden im amerikanischen Englisch ausgesprochen. Dies kann auch eine Herausforderung für die führenden Konsonanten darstellen, die Soundex verwenden, dessen man sich bewusst sein sollte (ich habe einmal mit einer Japanerin gearbeitet, die sich Risa (mit einem 'R') nannte, anstatt Lisa als Romanisierung ihres japanischen Namens).

Sie werden feststellen, dass meine Beispiele für die Vereinigten Staaten sind. Diese Daten sind leicht zugänglich. Anscheinend gibt es einige Dinge für Polen und Ungarisch und nur Hinweise auf die Gemeinsamkeit der ungarischen Namen ... Ich vermute, dass die Suche in einer anderen Sprache als Englisch dort hilfreich sein könnte.

Angesichts des Soundex für einen Namen gibt es also nur wenige Kollisionen, und die tatsächliche Schreibweise ist in der Menge der Kollisionen enthalten. Vorzugsweise ist dies ein gebräuchlicher Name. Wenn man sich diese ungarische Liste ansieht, wird Krisztiánes wahrscheinlich zu Rechtschreibfehlern kommen, Zoltánweniger wahrscheinlich (Nr. 22 der häufigsten Babynamen 2011 in Ungarn!). Das heißt, Sie können nichts falsch machen Michael.


quelle
2
Geniale Antwort! Ich werde versuchen, es zu implementieren, und sobald ich fertig bin, teile ich den Code und akzeptiere Ihre Antwort.
user1202136
2
Ein Versuch, diese Idee umzusetzen. "Benutzertests" nicht ganz bestanden. :) github.com/cristiklein/idemscriptent-given-names
user1202136
Hervorragende Antwort Michael! @ user1202136 tolle arbeit am script! Ich bin interessiert, die Ergebnisse zu sehen :)
Chris Cirefice
1
@ChrisCirefice: Während Michaels Antwort einfach fantastisch ist, stellte ich fest, dass es keine Namen gab, die den "Benutzertest" bestehen würden. Ich habe mich für einen viel einfacheren Algorithmus entschieden, der versucht, identische Namen in den Top-100-Namenslisten zu finden. Die Ergebnisse finden Sie hier: github.com/cristiklein/idemscriptent-given-names
user1202136
1

Sie möchten sich wahrscheinlich mit dem phonetischen Algorithmus von Double Metaphone befassen, der die Aussprache von Wörtern in verschiedenen Sprachen behandelt. Es gibt auch ein Metaphone 3, aber die Benutzung kostet Geld.

John Smith
quelle