Fabián Flores escribió:
El Miércoles, 25 de Octubre de 2006 10:58, Santiago Bosio escribió:

Fabián, Francisco, José Luis y William:

el desarrollo se migró hace tiempo a un servidor de Subversion, con lo cual
se facilita mucho el trabajo colaborativo. El repositorio podrán
visitarlo en:

https://svn.hispalinux.es/websvn/listing.php?repname=rla-es&path=%2F&rev=0&;
sc=0

A todos los interesados les pediría que visitaran el repositorio y
observen cómo está estructurado. No existe documentación sobre el
trabajo :-(, pero estoy disponible para cualquier consulta que quieran
realizar. La estructura puede parecer un tanto confusa, pero es que el
formato de los diccionarios, y el funcionamiento de los algoritmos no es
tan sencillo como puede parecer a priori (no es una mera comparación de
palabras).

Bien, visité el sitio y me dí cuenta rápidamente que con sólo mirarlo podría
entender como funciona... en unos dos millones de años :)
Sobre Subversion lo único que sé es que sirve para el control de versiones,
pero no sé cómo funciona.

Similar a CVS (pero mejor -dicen los autores-). Pero no es más que eso, un sistema de control de versiones. Una vez te acostumbras a los comandos básicos (checkout, update, commit, etc.) lo demás no importa mucho.
Cuando se me pasó el mareo :-) descomprimí el zip es_ANY para mirar la
estructura del archivo. Resumo lo que entendí:

OOo usa MySpell (otros programas también lo usan), que es una derivación del
diccionario Aspell.

Corrección: OOorg 2.0.4 utiliza HunSpell (una versión ampliada y mejorada de MySpell), que entre otras cosas permite utilizar codificación UTF-8 en los archivos que definen el diccionario. Esto es útil para idiomas que no soportan codificación de 1 byte en sus tablas de caracteres. A nosotros no nos afecta porque podemos seguir trabajando con la ISO-8859-1 y HunSpell soporta cualquiera de ellas.

es_ANY.aff es el archivo de afijos que se usa para relacionar las palabras del
dicctionario (es_ANY.dic en este caso). Así se evita incluir muchas
variaciones de una palabra determinadas por la aplicación de prefijos,
sufijos, etc.

Ejemplos de la estructura de es_ANY.aff

SET ISO8859-1
TRY aeroinsctldumpbgfvhz
REP 20
REP ge hue
REP gi hui
MAP 5
PFX a Y 2
PFX a 0 a [^aeiou]
SFX A Y 18
SFX A ner siciones oner

De esto sólo creo entender que PFX son los prefijos y SFX los sufijos. Lo
demás no sé qué es.

Bien. Has entendido bastante bien. Lo más importante del fichero de afijos son las definiciones de prefijos y sufijos (reglas PFX y SFX, respectivamente). Los demás parámetros son: SET: indica la codificación de caracteres. Es decir que tanto el .aff como el .dic en este caso están codificados en ISO-8859-1. TRY: indica el orden de reemplazo de caracteres. El algoritmo que proporciona las sugerencias utiliza distintas estrategias para sugerir reemplazos cuando una palabra no se encuentra en el diccionario. Dos de ellas son: reemplazar una letra por otra del alfabeto, y la otra insertar una letra en cada posición de la palabra. La sentencia TRY le indica en qué orden intentar con cada letra, que se encuentran ordenadas por frecuencia de aparición en el diccionario.

Las sentencias MAP indican distintas representaciones de una misma letra (recuerda que en binario, el código para la letra 'a' es distinto del de 'á'. Es más útil en otros idiomas que aceptan por ejemplo más de un acento por palabra, pero a nadie le hace daño agregarlo.

Las sentencias REP se utilizan para indicar errores comunes que afectan más de una letra. Ya que el algoritmo de reemplazo es de distancia-1 (es decir reemplaza o inserta una única letra). Errores como "axión" nunca obtendrían la sugerencia "acción" mediante este algoritmo.
Ejemplos de la estructura de es_ANY.dic

76440
ababa/N
ababille/S
abollen/h
abollonar/RED
abollone/G
abolorio/S
abolsar/RDE
abombar/RDEP
abombe/SG
abominable/S
abominar/RDEA
acoplar/hRPDE

De aquí creo entender que /algo son caracteres modificadores que se combinan,
pero ni idea qué es lo que indican.

Estos indicadores se refieren a las reglas de prefijos o sufijos definidas en el es_ANY.aff. Si te fijas en el mismo, cada conjunto de reglas de prefijos o sufijos tiene asignado uno de estos indicadores (el carácter que sigue a PFX ó SFX). Una entrada como 'abominable/S' indica que la palabra 'abominable' es válida, y también lo son las que resulten de aplicarle las reglas de reescritura del conjunto identificado con el carácter 'S' (en este caso es una regla de sufijos -específicamente la que forma plurales-).

En el sitio web encontré que hay varias herramientas y documentos:

Aquí se explica el significado de los afijos (particularmente me pareció
complicado de entender)
https://svn.hispalinux.es/websvn/filedetails.php?repname=rla-es&path=%2Fortograf%2Fafijos%2Fafijos.txt&rev=0&sc=0

No, ahí no se explica nada. Ese ES el fichero de definición de afijos, sólo que contiene algunos comentarios introductorios de cada regla. Pero no se explica la estructura. Esa información está disponible (aproximadamente, y en inglés) en el sitio del proyecto lingucomponent.

Aquí hay herramientas para trabajar con los diccionarios:
https://svn.hispalinux.es/websvn/listing.php?repname=rla-es&path=%2Fortograf%2Fherramientas%2F&rev=0&sc=0

extraer.c (extrae las palabras del diccionario ¿a un archivo nuevo?)
make_dict.sh (construye el diccionario ¿partiendo de qué archivos?)
palabras.sh (ABM de palabras)
remover_comentarios.sh (no comment)

Si estos programas trabajan sobre el servidor Subversion ¿qué programas hay
que tener instalados? ¿SSH?

Estas son herramientas que me han facilitado a mí el mantenimiento y las he subido al repositorio para que las puedan utilizar (y mejorar) quienes colaboran. No soy un experto programado de scripts en shell, pero es lo que mejor me salió. El programita de C permite obtener el listado de palabras contenido en los diccionarios de usuario (los .dic) por la salida estándar. El script make_dict.sh permite generar los paquetes de diccionario, utilizando las herramientas de MySpell. El script palabras.sh permite añadir o eliminar palabras de las listas. El script remover_comentarios.sh remueve los comentarios del fichero de afijos antes de generar la versión final. Ninguno de estos trabajan sobre el servidor, sino que al hacer el checkout a tu copia local, te quedan disponibles para utilizarlos.

Por último hay un enlace "Palabras" que muestra que se dividen según si están
aceptadas por RAE o no. ¿Se incluyen palabras no RAE en MySpell?

La mayor parte son palabras verificadas contra el diccionario de la RAE. Ese es un trabajo que me tomé y me llevó más de un año de tiempo libre. Esas se ubican en el directorio RAE. También existe un directorio noRAE que contiene palabras de uso general y aceptado, como por ejemplo la mayoría de los adverbios terminados en -mente, que no son aceptados como palabras por la RAE, topónimos, nombres propios, etc.
Bueno Santiago, no se si me orienté bien como para empezar, pero quisiera que
me expliques esto para avanzar un poco.

Saludos.

Espero haberte aclarado algo el panorama.

Saludos,

Santiago.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Responder a