¿Cómo encontrar nombres de ortografía difíciles de escribir mal?


16

Aquí hay una pregunta que creo que podría resolverse con algo de minería de datos y un algoritmo sofisticado, pero no sé cómo. Cualquier sugerencia sobre qué fuentes de datos usar y qué algoritmo aplicar son bienvenidos.

Antecedentes: soy un rumano-húngaro que espera un bebé con un polaco-ucraniano y no ha decidido en qué país queremos establecernos. Como es de esperar, elegir un nombre de pila es de suma importancia y un debate candente. Por mi parte, todavía estoy traumatizado por todas las molestias que tuve que pasar cuando alguien escribía mal mi nombre mientras me mudaba de un país a otro. Por ejemplo, si te llamaran "Adrian" serías bendecido en Rumania, solo para descubrir que terminaste siendo "Adri e n" es un documento oficial francés. Entonces, mi único requisito es hacer que sea extremadamente improbable que el nombre del bebé esté mal escrito en algunos países europeos.

Declaración del problema: Dado un conjunto de países, por ejemplo, Francia, Alemania, Suecia, Polonia y Rumania, encuentre la lista de nombres de pila que, cuando se pronuncia correctamente, es poco probable que los lugareños escriban mal.

Más formalmente: Sea p (c, n) una función que devuelve la probabilidad de que el nombre n esté mal escrito en el país c . Dado C un conjunto de países y p₀ una probabilidad, encuentre N un conjunto de nombres dados, de modo que

para todo nN y cC , p (c, n) <p₀

Pensamientos iniciales : El problema central es cómo implementar p (c, n) . Se podría tratar de aproximarlo con una heurística. Claramente, es probable que un nombre esté mal escrito en dos casos:

  1. Es poco usado en ese país.
  2. Es similar a un nombre diferente, que no se usa poco en ese país.

No estoy seguro de cómo podría usar Internet, por ejemplo, Wikipedia, para responder de manera eficiente a estas dos preguntas. ¿Cómo se enumerarían solo los nombres de uso frecuente en un país? ¿Cómo buscaría uno de ortografía similar?


1
No estoy seguro de que la popularidad afecte en gran medida la probabilidad de escribir mal, en comparación con la baja distancia de edición a otros nombres. Por ejemplo, Hanna suena similar / idéntica a Hannah y Anna , y Lucas es similar a Luca y Lukas . Una vez que pueda tener en sus manos una lista de nombres para cada país, puede comenzar agrupando las distancias de edición bajas.
amon

Creo que también tiene que ver con la popularidad. Nadie deletrearía a Anna en rumano, ya que el doble n es extraño en ese idioma. Del mismo modo, una persona francesa probablemente escribiría cristiano incluso si lo pronuncias sin h . (Juego de palabras: D)
usuario1202136

55
El enfoque pragmático sería utilizar un GUID.
toniedzwiedz

1
Gran referencia de XKCD. Pero no olvide las mesas de Little Bobby ;-) xkcd.com/327
Mawg dice que reinstale a Monica el

Consideraría comparar los sonidos de las vocales en esos idiomas. Mi alemán habla con fluidez, pero sigo haciendo un lío de Ö
dice Mawg reinstalar a Mónica el

Respuestas:


15

Hay algunos enfoques que funcionarían mejor para algunos idiomas que para otros. Por ejemplo, soundex (y otra descripción que me gusta ) fue diseñado para pronunciaciones de nombres en inglés. Con soundex, se Michaelconvierte en M240. Esto tiene varios pasos:

  1. La primera letra está aislada. ( My ichael)
  2. Todas las vocales se eliminan del resto ( My chl)
  3. Las consonantes son reemplazadas
    • c -> 2
    • l -> 4
  4. Almohadilla izquierda ceros.

La agrupación de las conversiones de consonantes están basados en su similitud fonética - B, F, Py Vtoda mapa para 1.

Y hay variaciones en esto con el tiempo . Es particularmente útil en genealogía donde la ortografía de un nombre puede cambiar con el tiempo, pero la pronunciación sigue siendo similar.


También hay enfoques como la clasificación de coincidencias que fue desarrollada por las aerolíneas para los nombres (en lugar de la genealogía estadounidense).

La codificación del enfoque de calificación de coincidencia (MRA) es:

  1. Eliminar todas las vocales no principales (se Michaelconvierte Mchly se Anthonyconvierte Anthny)
  2. Elimina la segunda constante de cualquier doble
  3. Si la cadena tiene más de 6 caracteres, reduzca la cadena restante a 6 caracteres tomando los primeros tres y los últimos tres.

La especificación completa para esto se puede encontrar en archive.org : tenga en cuenta que "no es pequeña" (el formulario impreso tiene 214 páginas).

Las comparaciones tienen un umbral coincidente en función de la longitud del texto.

También hay otros algoritmos fonéticos .


Entonces, lo que le animo a hacer es tomar el índice de sonido tal cual, tomar el enfoque de calificación de partido tal como está o modificar el índice de sonido según las consonantes rumanas y las consonantes polacas .

Recuerde que con soundex, las consonantes se agrupan (en polaco, m, n, ɲestán todas las consonantes nasales a agruparse, y que probablemente grupo de las oclusivas labiales, dentales y alveolares - ya sean sin voz o voz juntos - sentado, no lo hago sé polaco, así que no sé si solo digo cosas que no son ciertas allí).

Luego, simplemente convierta todos los nombres en la base de datos a los dos sistemas de índice de sonido diferentes y descubra qué nombres tienen el conjunto más bajo de colisiones en los diferentes idiomas. Esto te da nombres distintos. Entonces eso Smithno aparece como Smyth.


Esto, sin embargo, solo resuelve el "nombre que probablemente colisionará con otros nombres y que se lo escuche mal". No aborda la otra forma del "nombre escuchado correctamente, escrito incorrectamente" y para eso, uno debe enfocar su atención en nombres comunes.

Por ejemplo, Michaelera un nombre muy común en los EE. UU. Desde principios de 1950 hasta finales de 1970. Fue realmente popular . Sin embargo, por alguna razón, el nombre Michealera bastante popular en la década de 1950 (llegó al 83o nombre más común en su apogeo). Y estoy seguro de que las personas nombradas Michealconstantemente escriben mal su nombre.

Por lo tanto, debe centrarse en los nombres donde hay un nombre que domina la popularidad del nombre para una pronunciación dada. Echando un vistazo a otro consumidor de datos de los nombres por año, se puede ver que los nombres que empiezan con mermelada ... para un niño son un lío con Jamaal, Jamal, Jamary otros. Por cierto, estos nombres tienen índices de sonido ligeramente diferentes para los estadounidenses ( J540, J540y J560- the ly restán en diferentes grupos a pesar de que están estrechamente relacionados en fonética). Sin embargo, para alguien de, digamos Japón, solo hay un sonido en la región fonética donde lyrse pronuncian en inglés americano. Esto también puede plantear un desafío con las consonantes principales que usan el índice de sonido que uno debe tener en cuenta (una vez trabajé con una mujer japonesa que se hacía llamar Risa (con una 'R') en lugar de Lisa como una romanización de su nombre japonés).

Notarás que mis ejemplos son para los Estados Unidos. Esa información es fácilmente accesible. Aparentemente, hay algunas cosas para Polonia y Húngaro , y solo insinúa el nombre común en húngaro ... Sospecho que buscar en un idioma que no sea inglés podría ser útil allí.

Entonces, dado el índice de sonido para un nombre, pocas colisiones y la ortografía real está en el conjunto de colisiones. Preferiblemente, este es un nombre común. Mirando esa lista húngara, seguir con Krisztiánprobablemente obtendría errores ortográficos, mientras que es Zoltánmenos probable (¡el nombre de bebé # 22 más común en 2011 en Hungría!). Dicho esto, no te puedes equivocar Michael.


2
Respuesta impresionante! Intentaré implementarlo y una vez que haya terminado, comparto el código y acepto su respuesta.
user1202136

2
Un intento de implementar esta idea. No del todo pasando "pruebas de usuario". :) github.com/cristiklein/idemscriptent-given-names
usuario1202136

Excelente respuesta Michael! @ user1202136 gran trabajo en el script! Estoy interesado en ver los resultados :)
Chris Cirefice

1
@ChrisCirefice: Si bien la respuesta de Michael es simplemente increíble, descubrí que no produce nombres que pasen la "prueba de usuario". Fui por un algoritmo mucho más simple, que trata de encontrar nombres deletreados de manera idéntica en las 100 principales listas de nombres. Encuentre los resultados aquí: github.com/cristiklein/idemscriptent-given-names
user1202136

1

Probablemente desee examinar el algoritmo fonético de doble metafonía, que está diseñado para manejar cómo se pronuncian las palabras en diferentes idiomas. También hay un Metaphone 3, pero cuesta dinero usarlo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.