¿Cómo encontrar palabras que estén cerca de otras palabras?

¿Cómo encontrar palabras que estén cerca de otras palabras?

Voy a crear un diccionario en el que los usuarios puedan encontrar cada palabra que esté cerca entre sí al pronunciar y palabra Letra.

Por ejemplo, cuando el usuario buscócercami sitio devuelve otras palabras cercanas a eso, comocerca, pera, querido, trasero, aquí

¿Cómo hacerlo?

como este sitio web:zona de rima

Respuesta1

Creo que esto es tolerablemente complejo. Es una rama de la programación del lenguaje natural (no la otra PNL, Neuro Linguistic Pap). Debe poder hacer coincidir "aquí" y "escuchar", por lo que debe dividir los elementos y asignarlos a una equivalencia fonética (h-"ere" y h-"ere" para ambos). Y algunas grafías tienen fonéticas variantes (cough, plough, through) o tienen homónimos aún peores (the there, they're, its group) y pueden ser diferentes regionalmente (en el Reino Unido, la 'a' larga o corta en garage, gráfico y vidrio, por ejemplo). Cuando haces equivalencias fonéticas, no siempre son singulares.

Una vez que tenga equivalencias fonéticas, puede utilizar una variedad de heurísticas para minimizar la diferencia entre ellas. Para la poesía, probablemente necesites enfatizar excesivamente el peso de las terminaciones; la rima depende principalmente de las terminaciones de las palabras. Es posible que también desee ejecuciones aliteradas para la poesía; probablemente se necesitaría una ponderación diferente para la aliteración eufónica.

Me uniría a uno de los cursos universitarios gratuitos en línea sobre PNL; actualmente hay varios. Una base mucho mejor en técnicas modernas para analizar el lenguaje. :)

Respuesta2

Puede utilizar la comparación de cadenas entre cadenas de la misma longitud y permitir uno (o dos) caracteres que no coincidan.

Sin embargo, al mirar su sitio web, sugeriría asignar las palabras según su representación fonética y luego buscarlas, tratando las cadenas como matrices de caracteres y comenzando la comparación desde atrás.

Para construir sobre su ejemplo: cerca -> \'nir\ pear -> \'per\ dear -> \'dir\ rear -> \'rir\ o \'rer\ aquí -> \'hir\

(Estoy copiando el Merriam-Webster en línea para la notación fonética, aquí)

Me temo que el mapeo debería hacerse como una tabla de búsqueda y no se puede compilar, porque el inglés no tiene reglas de pronunciación muy estrictas...

De todos modos, una vez que hayas mapeado tus palabras, puedes comparar su último fonema: en este caso, es posible que quieras buscar palabras que terminen en "ir\" (lo que excluiría "pear", en este caso).

Este método no parece muy eficiente: si pudiera usar algo de espacio en el disco, guardaría las búsquedas para referencia futura: así, cuando un segundo uso busca todas las palabras que riman con "cerca", la aplicación simplemente carga las palabras guardadas. búsqueda -ya que los diccionarios no suelen evolucionar demasiado rápido.

información relacionada