Creación de un corrector ortográficoHola,
Tengo algunos archivos de texto descargados de Internet y tengo la intención de ejecutar algunos análisis de texto en ellos. Sin embargo, están llenos de errores tipográficos y quiero corregirlos tanto como pueda antes de enviarlos a la plataforma Text Explorer. La primera tarea más obvia será corregir automáticamente tantos errores tipográficos como sea posible.
Para hacerlo, necesito una lista relativamente completa de palabras comunes con las que comparar mis archivos. El corrector ortográfico de MS Word debe tener acceso a dicha lista. No sé si esa lista es parte integral de MS Word o es solo un componente estándar de Windows, pero de cualquier manera, ¿alguien sabe si puedo acceder a esa lista directamente desde JMP?
En un punto relacionado, ¿cómo podría comenzar a calcular la "mejor coincidencia" entre cualquier palabra escrita incorrectamente y una lista de palabras en inglés escritas correctamente? No tengo ninguna duda de que hay varias formas de hacer esto, pero debe haber algunas bastante estándar. (No estoy lo suficientemente familiarizado con Regex para saber si esta es la forma de abordar ese problema, pero si tengo que aprenderlo, lo haré).
Muchas gracias.
Re: Crear un corrector ortográficoMuchas gracias a todos los que han respondido a este hilo: todas las sugerencias han sido en realidad útil. Dedicaré algo de tiempo a analizar la Distancia de Levenshtein para ver qué se puede hacer con ella (para lo cual el guión será invaluable); también la función Shortest Edit Script(), que parece que podría ser muy útil. De acuerdo con el consejo recibido, no dedicaré tiempo a Regex, pero bien podría considerar la posibilidad de escribir una macro de Word; veremos cómo funciona. También se me ocurre que es posible que alguien haya abordado esto en R, en cuyo caso podría haber algo en Internet que podría importarse a través de las funciones relacionadas con R de JMP. Muchas vías para explorar, pero marcaré la pregunta como resuelta.
Una vez más, muchas gracias a todos y cada uno.
Re: Crear un corrector ortográficoSólo un FYI. Se adjunta un script que define una función llamada calcularLevenshteinDistance() e incluye múltiples ejemplos y descripción de los guión de edición más corto() función. También incluye ejemplos de cómo encontrar la secuencia común más larga.
Este script se escribió como un ejemplo adicional para limpiar texto, documentado en el Capítulo 9 de JSL Companion, Aplicaciones del lenguaje de secuencias de comandos JMP, 2.ª edición, y porque nos pareció una función interesante.
Al limpiar las columnas de encuestas o comentarios (no un documento completo), la columna recodificar puede ser útil.
Re: Crear un corrector ortográficoPara la comparación de palabras, puede usar la distancia de Levenshtein.https://en.wikipedia.org/wiki/Levenshtein_distance
Re: Crear un corrector ortográficoalgo de información de la lista de palabras en este blog https://community.jmp.com/t5/Uncharted/WordNet/ba-p/28984
Hace mucho tiempo se usaba un algoritmo como este:
buscar la palabra en una matriz asociativa de buenas palabras conocidas. Si la búsqueda falla, pruebe algunas reglas para eliminar los sufijos s, ing, ed y búsquelo de nuevo. si aún falla, haga sugerencias buscando palabras similares formadas al intercambiar pares de letras, insertar letras, borrar letras.
Creo que las sugerencias para usar un programa externo son apropiadas, y creo que regex en su mayoría no es la respuesta. Es posible que pueda usar recodificar dentro del explorador de texto, aunque será un proceso manual.
Aquí hay una función interesante en JMP que podría ser útil si decide hacer su propia solución
shortest edit script("maintainence","maintenance")
{{"Común", "mantenimiento"}, {"Insertar", "en"}, {"Común", "a"}, {"Quitar", "i"}, {"Común",
"n"}, {"Quitar", "en"}, {"Común", "ce"}}
El guión de edición es una descripción de dónde difieren las dos palabras. Podría crear una métrica a partir de eso usando la cantidad de caracteres insertados y eliminados.
Re: Crear un corrector ortográficoDos cosas:
1. La comunidad LaTeX tiene una serie de listas de palabras que se pueden usar con los correctores ortográficos integrados en sus IDE. Es posible que puedas usar uno de ellos.
2. En lugar de intentar piratear su propio corrector ortográfico, puede intentar conectarse directamente a GNU Aspell. Es bastante sólido (y creo que es lo suficientemente inteligente como para ignorar el código). No estoy seguro de cómo haría eso, pero es posible que pueda lograrlo a través de una llamada de Python o algo así.
Puede ser dirigido a listas de palabras y la aplicación Aspell aquí: http://aspell.net .
METRO
Re: Crear un corrector ortográficoNo sé cómo acceder a una lista externa, como la que podría usar el corrector ortográfico en MS Word, de JMP. Además, la lista es utilizada por el verificador. El verificador sería difícil de duplicar en un script JMP.
Puede considerar crear una macro de Visual Basic para MS Word para verificar y corregir la ortografía en los archivos de texto originales antes de importarlos a una tabla de datos JMP para su análisis.
Las expresiones regulares son una forma poderosa de hacer coincidir patrones, pero ese enfoque se volvería engorroso si se aplicara a la tarea de encontrar todas las palabras mal escritas y devolver la palabra correcta.