jueves, 18 de agosto de 2016

aspell

La última herramienta que veremos es aspell, un corrector ortográfico interactivo. El programa aspell es el sucesor de un programa anterior llamado ispell, y se puede usar, en su mayor parte, como reemplazo de este. Aunque el programa aspell es usado, principalmente, por otros programas que requieren capacidad de corrección ortográfica, también puede usarse muy eficientemente como una herramienta independiente de la línea de comandos. Tiene la capacidad de comprobar inteligentemente varios tipos de archivos de texto, incluyendo documentos HTML, programas C/C++, mensajes de correo y otros tipos de textos especializados.

Para comprobar ortográficamente un archivo de texto que contenga una prosa simple, puede usarse así:

aspell check textfile

donde textfile es el nombre del archivo a comprobar. Como ejemplo práctico, crearemos un archivo de texto simple llamado foo.txt que contengan algunos errores ortográficos intencionados:

[me@linuxbox ~]$ cat > foo.txt
The quick brown fox jimped over the laxy dog.

A continuación, comprobamos el archivo usando aspell:

[me@linuxbox ~]$ aspell check foo.txt

Como aspell es interactivo en el modo de comprobación, veremos una pantalla como esta:

The quick brown fox jimped over the laxy dog.

                                              
1) jumped               6) wimped
2) gimped               7) camped
3) comped               8) humped
4) limped               9) impede
5) pimped               0) umped
i) Ignore               I) Ignore all
r) Replace              R) Replace all
a) Add                  l) Add Lower
b) Abort                x) Exit
                                              
?

En la parte de arriba de la pantalla, vemos nuestro texto con una palabra sospechosa señalada. En el centro, vemos diez sugerencias ortográficas numeradas del cero al nueve, seguida de una lista de otras opciones posibles. Finalmente, en la parte inferior, vemos un prompt preparado para aceptar nuestra elección.

Si pulsamos la tecla 1, aspell reemplaza la palabra incorrecta por la palabra "jumped" y se mueve a la siguiente palabra mal escrita, que es "laxy". Si seleccionamos el reemplazo "lazy", aspell la cambia y termina. Una vez que aspell ha terminado, podemos examinar nuestro archivo y ver que los errores han sido corregidos:

[me@linuxbox ~]$ cat foo.txt
The quick brown fox jumped over the lazy dog.

A menos que se le indique en la línea de comandos la opción --dont-backup, aspell crea una copia de seguridad del archivo con el texto original añadiéndole la extensión .bak al nombre del archivo.

Presumiendo de nuestra habilidad editando con sed, pondremos nuestros errores ortográficos de nuevo para que podamos reutilizar nuestro archivo.

[me@linuxbox ~]$ sed -i 's/lazy/laxy/; s/jumped/jimped/' foo.txt

La opción -i de sed para editar el archivo "in-situ", significa que en lugar de enviar la salida editada a la salida estándar, reescribirá el archivo con los cambios aplicados. También vemos la capacidad de colocar más de un comando de edición en la línea separándolos con un punto y coma.

A continuación, veremos como aspell puede manejar diferentes tipos de archivos de texto. Usando un editor de texto como vim (los aventureros pueden probar sed), añadiremos algunas etiquetas HTML a nuestro archivo:

<html>
  <head>
    <title>Mispelled HTML file</title>
  </head>
  <body>
    <p>The quick brown fox jimped over the laxy dog.</p>
  </body>
</html>

Ahora, si tratamos de comprobar la ortografía de nuestro archivo modificado, encontramos un problema. Si lo hacemos así:

[me@linuxbox ~]$ aspell check foo.txt

tendremos esto:

<html>
  <head>
    <title>Mispelled HTML file</title>
  </head>
  <body>
    <p>The quick brown fox jimped over the laxy dog.</p>
  </body>
</html>

                                          
1) HTML            4) Hamel
2) ht ml           5) Hamil
3) ht-ml           6) hotel


i) Ignore          I) Ignore all
r) Replace         R) Replace all
a) Add             l) Add Lower
b) Abort           x) Exit
                                          
?

aspell verá el contenido de las etiquetas HTML como errores ortográficos. El problema puede solucionarse incluyendo la opción de modo de comprobación -H (HTML), como esta:

[me@linuxbox ~]$ aspell -H check foo.txt

que tendrá como resultado esto:

<html>
  <head>
    <title>Mispelled HTML file</title>
  </head>
  <body>
    <p>The quick brown fox jimped over the laxy dog.</p>
  </body>
</html>

                                                                                                
1) Mi spelled       6) Misapplied
2) Mi-spelled       7) Miscalled
3) Misspelled       8) Respelled
4) Dispelled        9) Misspell
5) Spelled          0) Misled
i) Ignore           I) Ignore all
r) Replace          R) Replace all
a) Add              l) Add Lower
b) Abort            x) Exit
                                        
?

El HTML se ignora y sólo las porciones no-HTML del archivo se comprueban. En este modo, el contenido de las etiquetas HTML son ignoradas y no se les comprueba la ortografía. Sin embargo, el contenido de las etiquetas ALT, que es bueno que se comprueben, sí se chequean en este modo.

Nota: Por defecto, aspell ignorará URLs y direcciones de correo electrónico en el texto. Este comportamiento puede ser modificado con opciones de la línea de comandos. También es posible especificar qué etiquetas son comprobadas y cuales son obviadas. Mira la man page de aspell para más detalles.

No hay comentarios:

Publicar un comentario