Principal > Articles > Code > Información técnica sobre el diccionario de Firefox
RSS
RSS
 
Información técnica sobre el diccionario de Firefox
Fecha 29/01/2009 23:31 Autor Marcelo Veces 1093
Print Pdf RSS

Lo que sigue es información técnica sobre el diccionario utilizado para la corrección ortográfica de Firefox y Thunderbird.

Hunspell es un corrector ortográfico y un analizador morfológico diseñado para idiomas con una morfología rica y codificación de carácteres o palabras compuestas complejas, diseñado originalmente para el idioma húngaro.

Hunspel está basado en MySpell y es compatible con versiones anteriores de diccionarios de MySpell. Mientras MySpell utiliza la codificación de carácteres ASCII de 8 bit, Hunspell puede usar diccionarios con codificación UTF-8.
 

El diccionario tiene dos archivos, uno con extensión dic contiene la lista de palabras válidas y el otro con los prefijos y sufijos con extensión aff. Este último sirve para no tener que escribir las palabras en singular y plural o los adverbios respectivos, por ejemplo.
En el caso del diccionario es-AR, losarchivos tienen la codificación ISO8859-1 que incluye todos los caracteres necesarios para escribir en nuestro idioma.
El diccionario en sí, solamente es la lista de palabras ordenada alfabéticamente con la cantidad de palabras en la primera línea del archivo.
Pueden ver como ejemplo las primeras líneas del archivo es-AR.dic:


49960
África
Ángela
ábaco/S
ábsida/S
ábside/S
ácana/S
ácaro/S
ácates
ácido/PS
ácigos
ácimo/S
ácoro/S
ácrata/S
ácueo/PS
ágape/S
ágata/S
ágil/MS



Ahí vemos que el diccionario consta de 49960 palabras y arranca con las mayúsculas con acento y luego las minúsculas con acento. Algunas palabras tienen detrás una barra seguida de una o más letras. Ése es el indicador de prefijo o sufijo. Para saber qué significa cada uno tenemos que mirar el archivo de prefijos y sufijos. Su estructura es bastante más complicada que la del diccionario así que comienza el desarrollo.

Nuevamente tomamos como ejemplo el archivo es-AR.aff:


SET ISO8859-1
TRY aroeinltcsdumpbgvfhzóíjqáéñxyúüCkAMIESPGRJBFDVTHUOwLNKZYÁÉÍÓÚÜÑQWX

SFX J Y 12
SFX J e ísimo e
SFX J e ísimos e
SFX J e ísima e
SFX J e ísimas e
SFX J o ísimo o
SFX J o ísima o
SFX J o ísimos o
SFX J o ísimas o
SFX J 0 ísimo l
SFX J 0 ísima l
SFX J 0 ísimos l
SFX J 0 ísimas l

SFX M Y 2
SFX M o amente o
SFX M 0 mente [elnrsz]

SFX V Y 5
SFX V ar o ar
SFX V er o [^cg]er
SFX V cer zo cer
SFX V ger jo ger
SFX V ir o [^cgu]ir


La primera línea define la codificación del diccionario. La segunda ordena los caracteres por frecuencia de aparición para usar al sugerir palabras mal escritas.
Después comienza el listado de prefijos y sufijos que surgen de la siguiente manera:

SFX indica que se trata de un sufijo. Es decir que modifica el final de la palabra.
La letra que sigue es simplemente el "nombre" del sufijo con el que lo identificamos detrás de la palabra en el .dic.
La Y especifica que se puede combinar con prefijos o viceversa. En caso de no desearlo, usaremos una N.
El número final, determina la cantidad de variantes que tiene el sufijo. En el ejemplo vemos que el primero tiene doce variantes y el segundo solamente dos.

Las siguientes líneas reflejan las opciones posibles para ese sufijo. Comienzan  con el mismo indicador y la letra identificatoria de la lína anterior.
Sigue el texo a borrar de la palabra original. Vemos en el ejemplo una o y también un cero que indica que no se elimina nada.
Posteriormente aparece el texto a agregar, ya sea al principio o al final, según sea el caso.
Y para terminar, el componente más complejo del diccionario. La condición para la cual aplicar el prefijo o sufijo.
La aplicación estará condicionada a que la palabra termine con las letras especificadas. Salvo cuando se anteponga el signo ^ que provoca la negación de la condición.
Las letras entre corchetes son intercambiables.
Véamoslo con ejemplos.
Cuando leemos 
SFX M o amente o 
quiere decir que si la palabra termina en o hay que eliminarla y colocar el sufijo amente. Entonces la palabra solo sirve para formar la palabra solamente.
En cambio cuando vemos 
SFX M 0 mente [elnrsz]
sabemos que no hay que eliminar ninguna letra por el cero que está en tercer lugar y que la palabra necesita terminar en e, l, n, r, s o z. Cualquiera de esas letras cumple la condición y por ejemplo, solaz sirve para validar solazmente.

Para complicar más las condiciones tenemos otro ejemplo que sirve para conjugar verbos.

SFX V er o [^cg]er
SFX V cer zo cer

En este caso la primera condición afirma que el verbo termina en er pero antes no hay ninguna c ni g, El segundo completa la condición agregando la terminación cer que la primera condición había dejado afuera. Por lo tanto coercer se conjuga como coerzo e interceder se conjuga como intercedo.

Navegación

 
Recent posts
Recent comments
RSS Feeds
SourceForge.net Logo
 
 
MemHT Portal is a free software released under the GNU/GPL License by Miltenovik Manojlo
Template designed by MemHT.com