es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo encontrar cadenas de una lista en un texto con errores tipográficos.

Estoy intentando verificar si algunas cadenas de texto de una lista están en un texto dado. Sin embargo, el texto dado puede tener algunos errores ortográficos. Por ejemplo, tomemos esto.

texto: The brownw focx and the cat are in th eforest.
y mi lista es: [brown fox, forest, cat]

Lo que hago para esto es separar mi texto en múltiples grupos, grupos de una palabra y dos palabras de esta manera:
[The, brownw, focx, and, the, cat, are, in, th, eforest, The brownw, brownw focx, focx and, and the, the cat, cat are, are in, in th, th eforest]

Luego itero sobre cada grupo de palabras y reviso con el algoritmo de Levensthein cuánto coinciden las dos cadenas de texto entre sí. En caso de que sea más del 90%, considero que son lo mismo.

Sin embargo, este enfoque es muy consumidor de tiempo y me pregunto si puedo encontrar una alternativa a esto.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en cadenas, optimización, procesamiento de lenguaje natural, análisis de datos y distancia de Levenshtein, existen algunas alternativas potenciales que podrías considerar para mejorar la eficiencia de tu enfoque.

    1. Algoritmo de búsqueda difusa: podrías implementar un algoritmo de búsqueda difusa, como la popular biblioteca de Apache Lucene, que permite encontrar términos similares dentro de un nivel de tolerancia dado. Esto podría proporcionar resultados similares o mejores al mismo tiempo que se optimiza más que el algoritmo de Levenshtein.
    2. Tokenización: en lugar de dividir el texto en palabras individuales, podrías tokenizar el texto en frases significativas y luego compararlas con tus elementos de lista. Esto podría permitir una búsqueda más eficiente de los elementos de lista deseados, reduciendo la cantidad de comparaciones necesarias.

    3. Preprocesamiento: también podrías preprocesar el texto antes de buscar los elementos de la lista, como eliminando errores comunes o normalizando el texto. Esto podría mejorar la precisión de la búsqueda y reducir la cantidad de falsos positivos.

    En general, la solución más efectiva dependerá de los requisitos y restricciones específicos de tu caso de uso. Puede ser beneficioso experimentar con diferentes enfoques y comparar su rendimiento para encontrar la mejor solución para tus necesidades.

Comments are closed.