29 junio 2009

Cómo conseguir diccionarios para Eclipse Spelling con Aspell

Aquí explicaré una forma de conseguir diccionarios para luego incorporarlos al corrector ortográfico de Eclipse.

La configuración de dicho corrector se encuentra en Windows >> Preferences >> General >> Editors >> Text Editors >> Spelling como se muestra en este link donde también se describen brevemente las opciones.

El campo que nos interésa es User defined dictionary puesto que en este deberemos indicar la ruta al archivo diccionario que crearemos más abajo.

Eclipse toma como diccionario a cualquier tipo de archivo que ahí se le indique, del cual identificará las palabras como una secuencia de caracteres separadas por saltos de línea y/o espacios. Por lo tanto bastará con crear un archivo donde se listen todas las palabras del diccionario en cuestión separándolas por espacios y/o saltos de línea.
Hasta el momento no he conseguido encontrar alguna base a partir de la cual armar el listado, pero sí una solución provisoria que pasa por utilizar los diccionarios que usa Aspell.

Aspell es un corrector ortográfico que se puede usar como una aplicación autónoma o incluida en otros programas.

En un sistema linux (Ubuntu en este ejemplo) lo instalamos así,
sudo apt-get install aspell

Y luego debemos instalar los diccionarios de nuestro interés como el español en este ejemplo,
sudo apt-get install aspell-es


Luego, como los diccionarios de aspell no van 100% acorde a lo que requiere el Eclipse, vamos a instalar el mawk o gawk, basta con uno cualquiera. Estos son intérpretes del lenguaje de programación AWK.
AWK es útil para el tratamiento de archivos de datos, recuperación y tratamiento de texto, para lo que le daré uso a continuación.

Para crear un archivo con un diccionario pronto para importar en Eclipse debemos ejecutar lo siguiente:

aspell dump master es | awk -F/ '{print $1}' > dic_es.txt


El último paso consta simplemente de setear la ruta al archivo dic_es.txt en el campo User defined dictionary como se menciono anteriormente.

Nota:
Se debe reiniciar el Eclipse cada vez que se vuelva a setear la ruta del archivo diccionario.
Eclipse hace referencia a dicho archivo y no así lo registra, por lo cual debe prestarse atención al momento de definir su ubicación.



Explicando un poco la última linea:
  • aspell dump master es - Por si sola mostrará el diccionario 'es'. La falg master es la que permite elejir el diccionario a mostrar. Por más información de los comandos Aspell basta con ejecutar en consola 'info aspell'.
  • awk -F/ '{print $1}' - Lo que hace es tomar el diccionario aspell-es procesar cada lína de este delimitando las palabras mediante el signo '/' indicado por la flag -F (para tener más claro el por qué de ésto, sugiero ejecutar solo el comando aspell para ver la salida que genera). Luego lo parseado hasta el caracter delimitador es almacenado en la variable $1 que es impresa con el comando '{print &1}'. Así estas impresiones son almacenadas en el archivo dic_es.txt generando un diccionario limpio para utilizar en Eclipse.


Agregado 09/11/2010 (diccionario expandido):
Aquí tienen el comando para conseguir una lista de palabras mucho más completa que la que se explica previamente en el post. Esta, como podan probar, funciona correctamente y el archivo generado es soportado por el Eclipse pese a que es unas 20 veces más grande que pueden generar con la versión no extendida.
aspell -l es dump master | aspell -l es expand | sed "s/ /\n/g" > dic_es_expandido.txt


6 comentarios:

  1. IPanera15/9/09

    Muchas gracias es justo lo que necesitaba

    ResponderEliminar
  2. Anónimo19/5/10

    gracias!

    ResponderEliminar
  3. Anónimo14/9/10

    Gracias al post porque me dió la idea de por dónde empezar, sin embargo está incompleto. Hace falta expandir el contenido de aspell con todas las variantes de las palabras mediante la opción expand.

    ResponderEliminar
  4. Anónimo7/11/10

    Hola. Gracias por compartir el consejo. Como mencionó quien hizo el comentario anterior, falta expandir el diccionario para que contenga las variantes de todas las palabras, no sólo las principales. Para hacerlo:

    aspell -l es dump master | aspell -l es expand | sed "s/ /\n/g" > dic_es_expandido.txt

    Saludos,
    MValdez

    ResponderEliminar
  5. Gracias gente por el aporte, lo incluiré en el post.

    ResponderEliminar
  6. // Mi solucion teniendo instalado aspell y aspell-es en Linux

    aspell --lang=es --encoding=utf-8 dump master | aspell --lang=es --encoding=utf-8 expand | tr [:space:] '\n' > spanish-utf8.dic

    Saludos

    ResponderEliminar

Nro de visita Cantidad de visitas recibidas