Comment trouver des prénoms difficiles à mal orthographier?

16

Voici une question qui, je pense, pourrait être résolue avec une exploration de données et un algorithme sophistiqué, mais je ne sais pas trop comment. Tous les conseils sur les sources de données à utiliser et l'algorithme à appliquer sont les bienvenus.

Contexte: Je suis un Roumain-Hongrois qui attend un bébé avec un Polonais-Ukrainien et n'a pas tout à fait décidé dans quel pays nous voulons nous installer. Comme vous pouvez vous y attendre, le choix d'un prénom est de la plus haute importance et un débat brûlant. De mon côté, je suis toujours traumatisé par tous les tracas que j'ai dû traverser lorsque quelqu'un mal orthographié mon nom alors que je déménageais d'un pays à l'autre. Par exemple, si vous vous appeliez "Adrian", vous seriez béni en Roumanie, seulement pour découvrir que vous avez fini par être "Adri e n" est un document officiel français. Donc, ma seule exigence est de rendre extrêmement improbable que le nom du bébé soit mal orthographié dans certains pays européens.

Énoncé du problème: étant donné un ensemble de pays, par exemple la France, l'Allemagne, la Suède, la Pologne et la Roumanie, trouvez la liste des prénoms qui, lorsqu'ils sont prononcés correctement, ne risquent pas d'être mal orthographiés par les habitants.

Plus formellement: Soit p (c, n) une fonction qui renvoie la probabilité que le nom n soit mal orthographié dans le pays c . Étant donné C un ensemble de pays et p₀ une probabilité, trouver N un ensemble de prénoms, tels que

pour tout nN et cC , p (c, n) <p₀

Pensées initiales : Le problème central est de savoir comment implémenter p (c, n) . On pourrait essayer de l'approcher avec une heuristique. De toute évidence, un nom est susceptible d'être mal orthographié dans deux cas:

  1. Il est peu utilisé dans ce pays.
  2. C'est semblable à un nom différent, qui n'est pas peu utilisé dans ce pays.

Je ne sais pas comment je pourrais utiliser Internet, par exemple Wikipédia, pour répondre efficacement à ces deux questions. Comment pourrait-on énumérer les noms utilisés assez fréquemment dans un pays? Comment rechercherait-on des orthographes similaires?

user1202136
la source
1
Je ne suis pas sûr que la popularité affecterait considérablement la probabilité d'orthographe, par rapport à la faible distance d'édition par rapport à d'autres noms. Par exemple, Hanna semble similaire / identique à Hannah et Anna , et Lucas est similaire à Luca et Lukas . Une fois que vous pouvez mettre la main sur une liste de noms pour chaque pays, vous pouvez commencer par regrouper par faibles distances d'édition.
amon
Je pense que cela a aussi à voir avec la popularité. Personne n'écrirait Anna en roumain, car le double n est juste bizarre dans cette langue. De même, un Français écrira probablement chrétien même si vous le prononcez sans h . (
Jeu de mots
5
L'approche pragmatique serait d'utiliser un GUID.
toniedzwiedz
1
Grande référence XKCD. Mais n'oubliez pas les tables Little Bobby ;-) xkcd.com/327
Mawg dit de réintégrer Monica
J'envisagerais de comparer les sons de voyelle dans ces langues. Mon allemand est courant, mais je fais toujours un gâchis de Ö
Mawg dit réintégrer Monica

Réponses:

15

Il existe certaines approches qui fonctionneraient mieux pour certaines langues que pour d'autres. Par exemple, soundex (et une autre description que j'aime ) a été conçu pour les prononciations anglaises des noms. Avec soundex, Michaeldevient M240. Cela comprend plusieurs étapes:

  1. La première lettre est isolée. ( Met ichael)
  2. Toutes les voyelles sont supprimées du reste ( Met chl)
  3. Les consonnes sont remplacées
    • c -> 2
    • l -> 4
  4. Zéros du pavé gauche.

Le regroupement des conversions de consonnes sont basées sur leur similitude phonétique - B, F, Pet Vmappent toutes 1.

Et il y a des variations à ce sujet au fil du temps . Il est particulièrement utile en généalogie où l'orthographe d'un nom peut changer avec le temps, mais la prononciation reste similaire.


Il existe également des approches telles que l' évaluation des correspondances qui a été développée par les compagnies aériennes pour les noms (plutôt que la généalogie américaine).

L'encodage de l'approche par notation (MRA) est:

  1. Supprimer toutes les voyelles non majuscules ( Michaeldevient Mchlet Anthonydevient Anthny)
  2. Supprimer la deuxième constante de tout double
  3. Si la chaîne dépasse 6 caractères, réduisez la chaîne restante à 6 caractères en prenant les trois premiers et les trois derniers.

La spécification complète pour cela peut être trouvée sur archive.org - notez qu'elle n'est "pas petite" (le formulaire imprimé est de 214 pages).

Les comparaisons ont un seuil de correspondance basé sur la longueur du texte.

Il existe également d' autres algorithmes phonétiques .


Donc, ce que je vous encourage à faire est de prendre le soundex tel quel, d'adopter l'approche de l'évaluation des correspondances tel quel ou de modifier le soundex en fonction des consonnes roumaines et polonaises .

Rappelez - vous que avec soundex, les consonnes sont groupées (en polonais, m, n, ɲsont à regrouper toutes les consonnes nasales, et vous regrouperait probablement les labiales, dentaires et occlusives alvéolaires - qu'ils soient ou sans voix exprimées ensemble - accordée, je ne connaître le polonais, donc je ne sais pas si je dis juste des choses qui ne sont pas vraies là-bas).

Ensuite, convertissez simplement tous les noms de la base de données en deux systèmes Soundex différents et découvrez quels noms ont le plus faible nombre de collisions dans les différentes langues. Cela vous donne des noms distincts. Donc, cela Smithn'apparaît pas comme Smyth.


Cela, cependant, ne résout que le «nom susceptible d'entrer en collision avec d'autres noms et d'être mal entendu». Il n'aborde pas l'autre sens du «nom entendu correctement, mal écrit» et pour cela, il faut concentrer son attention sur les noms communs.

Par exemple, Michaelétait un nom très courant aux États-Unis du début des années 1950 à la fin des années 1970. Il était vraiment populaire . Cependant, pour une raison quelconque, le nom Michealétait assez populaire dans les années 1950 (a atteint le 83e nom le plus courant à son apogée). Et je suis certain que les personnes nommées se font Michealconstamment mal orthographier leur nom.

Ainsi, vous devez vous concentrer sur les noms où il y a un nom qui domine la popularité du nom pour une prononciation donnée. Jetant à un autre consommateur de données pour les noms par année, vous pouvez voir que les noms commençant par Jam ... pour un garçon sont un gâchis avec Jamaal, Jamal, Jamaret d' autres. Soit dit en passant, ces noms ont des expressions sonores légèrement différentes pour l' américain ( J540, J540et J560- let rsont dans des groupes différents même s'ils sont étroitement liés en phonétique). Cependant, pour quelqu'un du Japon, par exemple, il n'y a qu'un seul son dans la région phonétique où letrsont prononcés en anglais américain. Cela peut également poser un problème avec les principales consonnes utilisant soundex dont il faut être conscient (j'ai déjà travaillé avec une femme japonaise qui s'appelait Risa (avec un `` R '') plutôt que Lisa comme romanisation de son nom japonais).

Vous remarquerez que mes exemples concernent les États-Unis. Ces données sont facilement accessibles. Apparemment, il y a certaines choses pour la Pologne et le hongrois , et seulement des indices sur la similitude des noms hongrois ... Je soupçonne que la recherche dans une langue autre que l'anglais pourrait y être utile.

Donc, étant donné le soundex pour un nom, peu de collisions et l'orthographe réelle se trouvent dans l'ensemble des collisions. De préférence, il s'agit d'un nom commun. En regardant cette liste hongroise, y aller Krisztiánaurait probablement des fautes d'orthographe alors que, Zoltánmoins probable (le 22ème nom de bébé le plus courant en 2011 en Hongrie!). Cela dit, vous ne pouvez pas vous tromper Michael.


la source
2
Réponse géniale! Je vais essayer de l'implémenter et une fois que j'ai terminé, je partage le code et accepte votre réponse.
user1202136
2
Une tentative de mettre en œuvre cette idée. Pas tout à fait réussi "test utilisateur". :) github.com/cristiklein/idemscriptent-given-names
user1202136
Excellente réponse Michael! @ user1202136 excellent travail sur le script! Je suis intéressé de voir les résultats :)
Chris Cirefice
1
@ChrisCirefice: Bien que la réponse de Michael soit tout simplement géniale, j'ai trouvé qu'elle ne produisait pas de noms qui passeraient le "test utilisateur". J'ai opté pour un algorithme beaucoup plus simple, qui essaie de trouver des noms orthographiés de manière identique dans les 100 meilleures listes de noms. Veuillez trouver les résultats ici: github.com/cristiklein/idemscriptent-given-names
user1202136
1

Vous voudrez probablement vous pencher sur l'algorithme phonétique Double Metaphone, qui est conçu pour gérer la façon dont les mots sont prononcés dans différentes langues. Il y a aussi un Metaphone 3, mais cela coûte de l'argent à utiliser.

John Smith
la source