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 n ∈ N y c ∈ C , 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:
- Es poco usado en ese país.
- 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?
Respuestas:
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
Michael
convierte en M240. Esto tiene varios pasos:M
yichael
)M
ychl
)c
-> 2l
-> 4La agrupación de las conversiones de consonantes están basados en su similitud fonética -
B
,F
,P
yV
toda mapa para1
.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:
Michael
convierteMchl
y seAnthony
convierteAnthny
)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
Smith
no aparece comoSmyth
.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,
Michael
era 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 nombreMicheal
era 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 nombradasMicheal
constantemente 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
,Jamar
y otros. Por cierto, estos nombres tienen índices de sonido ligeramente diferentes para los estadounidenses (J540
,J540
yJ560
- thel
yr
está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 dondel
yr
se 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án
probablemente obtendría errores ortográficos, mientras que esZoltán
menos probable (¡el nombre de bebé # 22 más común en 2011 en Hungría!). Dicho esto, no te puedes equivocarMichael
.fuente
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.
fuente