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]