Hola, desarrolladores de hunspell, Estamos tratando de crear un diccionario hunspell para Quechua (runasimi), una lengua indígena de los Andes, hablado por cerca de 10 millones de personas. Hay muchos dialectos, pero vamos a empezar con el dialecto de Cusco de Perú. Desafortunadamente, la mayoria de la gente que hablen quechua no saben como escribirlo. Por lo general ellos escribe las palabras por su sonido en el alfabeto castellano que consiste de las siguientes letras: a,b,c,ch,d,e,f,h,i,j,k,l,ll,m,n,ñ,o,p,q,r,rr,s,t,u,v,w,x,y,z Esperamos que con corrector de la ortografia podamos ayudar quechuahablantes escribir en el alfabeto quechua proprio que consiste de las siguientes letras: a,ch,chh,ch',e,f,h,i,j,k,kh,k',l,ll,m,n,ñ,o,p,ph,p',q,qh,q',r,s,sh,t,th,t',u,w,y (No existen b,c,d,g,rr,v,x,z en quechua.) El uso de un corrector de ortografía puede ser un tipo de entrenamiento en la lengua. Por ejemplo, quechuahablantes alfabetizados en castellano muchas veces escribe la palabra "casa" como "huasi" o "guasi". Con un corrector de la ortografía, ellos aprenderán a escribir la palabra correctamente como "wasi". Por lo general se aprende escribir en la misma manera que se aprende de hablar-- no por aprendiendo las reglas, pero por ensayo y corrección repetida de errores. Por eso, un corrector de ortografía es una herramienta excelente para enseñar cómo deletrear correctamente. Hemos investigado los otros formatos de correctores de ortografía (ispell, aspell, y myspell viejo), pero solo hunspell servirá porque necesitamos las opciones de sufijos aglutinativos de hunspell. Quechua tiene casi un número infinito de combinaciones de sufijos. Un palabra puede tener hasta 5 o 6 sufijos. El problema es que hay una orden en como los sufijos son añadidos, pero algunos sufijos como -lla puede ocupar lugares diferentes en la orden. Es un pesadilla tratar de listar todas las posibilidades. Yo trate de crear un diccionario ispell de quechua boliviana sureña hace 2 años con resueltos muy feos. Mi archivo de afijos tenían más que 27.000 líneas cuando yo lo abandonó y decidí que fuera imposible cubrir la lengua con ispell. Si quiere ver tal feo un archivo de afijos ispell pueda ser, puede descargarlo en: www.ciber-runa.org/qu-BO-0.02-0.zip Yo también tenía que crear un pequeño programa especial para insertar infijos en las palabras en el archivo de la lista de palabras. La lista de ~7000 palabras expandió por encima de 50,000 palabras y podría crecido fácilmente a más de 200,000 líneas si yo hubiera tratado de cubrir todos los infijos verbales posibles, pero yo decidí cubrir sólo los infijos más básicos. La gente de aspell transformó mi diccionario ispell al formato aspell y lo puso en ftp.gnu.org, pero nadie lo ha usado que yo sepa. Mandé el diccionario a la lista de desarrolladores de AbiWord dos veces, pero ellos nunca lo incorporaron en su programa. No tengo ninguna idea si el archivo masivo de afijos les causó rechazarlo, o si fue sencillamente una falta de supervisión adecuada de su parte. Hice 3 pedidos a la gente de OpenOffice que ellos añadieran quechua como una opción de lengua para que pudiéramos incorporar nuestro corrector de la ortografía quechua. Mis mensajes solía remitir a otras listas de OpenOffice, pero nadie nunca me respondió cómo añadir quechua como un código de lengua en OpenOffice. Fue una experiencia muy frustrante. Por fin, yo dejé tratando de incorporar el diccionario quechua boliviano de ispell/aspell en AbiWord y OpenOffice. No cubría mucha de la lengua, y yo pensaba que no sea muy útil. Otro problema fue que la lista de palabras vino de la diccionario escrito por Jesus Lara en los 1940s y 1950s. Su ortografía es desfasado y nadie ha escrito un diccionario actualizado y completo para quechua boliviano en un alfabeto correcto de uso hoy. Sin embargo, la situación es muy diferente para el dialecto cusqueño de quechua que tiene algunos diccionarios buenos, escritos en un alfabeto actualizado. Ahorita estamos formando un grupo en Peru para traducir algunos programas de software libre (AbiWord, FireFox, y eventualmente OpenOffice) en quechua, así que necesitamos un corrector de ortografía también. Pensamos que no sea posible hacer un corrector de ortografía quechua hasta que descubrimos su programa hunspell y decidimos que valga la pena intentarlo. Para entender tal difícil eso sea, echa una ojeada al cómo un verbo quechua sea formado: raíz verbal + ~15 infijos verbales posibles (~50 combinaciones de infijos) + 2 formas progresivas + ~100 combinaciones de persona, número, y tiempo + ~20 sufijos posibles + ~20 sufijos posibles + ~20 sufijos posibles Es posible tener más que tres sufijos verbales, pero es tan raro que no vamos tratar de cubrir combinaciones con más que 3 sufijos. In el caso de la mayoria de sufijos, pueden aparecerse como el primero, segundo, o tercero sufijo, pero la orden cambia según cuales sufijos son usado. Por ejemplo, si el sufijo "manta" y "pacha" aparece juntos, "manta" precede "pacha". Sin embargo, algunos sufijos como -má sólo puede ser usado como el último sufijo. Esto es cómo estamos pensando en implementando verbos en hunspell: En el archivo de la lista de palabras: -------------------------- raíces verbales: Todas las raíces verbales tendrá la bandera COMPOUNDBEGIN. Algunas raíces verbales puede ser usado como sustantivos, pero la mayoría de las raíces van a tener la bandera ONLYINCOMPOUND también. ~50 combinaciones de infijos verbales: 50 palabras compuestas con banderas COMPOUNDMIDDLE y ONLYINCOMPOUND. 2 formas progresivas + ~100 combinaciones de persona, número, y tiempo: Serán añadidos para formar ~300 palabras compuestas con las banderas COMPOUNDEND y ONLYINCOMPOUND. Además, estas palabras va a tener ~20 banderas de sufijos. (Serán ~300, porque ~100 sin la forma progresiva, ~100 con "sha" progresiva, y ~100 con "sa" progresiva) --------------------------- En el archivo de afijos: --------------------------- primero ~20 sufijos: ~20 banderas, todos con banderas adiciones para sufijos dobles (y triples). Segundo ~20 sufijos + tercero ~20 sufijos: Estos sufijos no será combinado para formar menos de ~400 banderas. (Será menos que ~400 porque algunos sufijos no combina con otros sufijos.) --------------------------- Ahorita, esto es lo que estamos pensando en hacer. ¿Uds. prevén algunos problemas? ¿Hunspell puede manejarlo? ¿Hunspell taponará o demorará con tantas palabras compuestas y banderas de sufijos? Con sustantivos, adjetivos y adverbios, no necesitaremos utilizar palabras compuestas, porque son menos complejas que los verbos. Usaremos la mayoría de las banderas para verbos para representar combinaciones para hasta 3 sufijos. Aparte del cómo representar la aglutinación de infijos y sufijos, también tenemos el problema de cómo coger las equivocaciones de ortografía para letras confundibles en quechua. En quechua hay un debate sobre el uso de 3 o 5 vocales. Las vocales "i" y "e" son intercambiado mucho, igual con las vocales "o" y "u". Es fácil representar esto con el mandato REP de hunspell: REP i e REP e i REP o u REP u o Estas vocales son las letras más comunes en Quechua. Uds. prevén un problema grande de rendimiento si hunspell tiene que transformar tantas letras? Porque estas vocales son muy confundibles, muchos lingüistas quechuas prefieren utilizar solo 3 vocales "a", "i", y "u". Vamos usar 5 vocales porque eso el estándar más común acá en Perú, pero alguien que quiere utilizar solamente 3 vocales puede transformar fácilmente nuestro diccionario de 5 vocales a un diccionario de 3 vocales con 2 sencillo mandatos de búsqueda global y reemplazo. Por el otro lado, si implementamos sólo 3 vocales, será muy difícil transformarlo en un diccionario de 5 vocales. Esperamos que en esa manera podemos evitar conflictos sobre el uso de vocales. Es relativamente fácil representar vocales confundibles en el formato hunspell, pero es más difícil representar los consonantes "ch", "k", "p", "q", y "t" que tengan un forma normal, una forma aspirado, y una forma glotalizado. Por ejemplo, en Quechua hay 6 sonidos |k| muy confundibles: k (|k| alto en la garganta) kh (k aspirado), k' (k glotalizado), q (|k| bajo en la garganta), qh (q aspirado) q' (q glotalizado) Muchas veces quechuahablantes deletrean mal los sonidos |k|, utilizando el alfabeto español. En español, |k| es representado por la letra "c" (si es seguido por "a", "o", o "u") o por "qu" (si es seguido por "e" o "i"). Además, aun siquiera escribiendo en el alfabeto quechua, quechuahablantes confunden a menudo estos consonantes al escribir, incluso algunos diccionarios difieren cómo deletrean algunas palabras. Por ejemplo, algunos diccionarios deletrea la palabra "escribir" como "qhelqay" y otros la deletrea como "qelqay". (En parte las diferencias en la ortografía surgen de diferencias regionales de pronunciación, especialmente con consonantes aspirados.) La parte peliagudo es que no hay una regla universal para cuando reemplace un letra |k| con otra letra |k|. En aspell con su opción "sonido como", podríamos transformar todos las formas de |k| en la letra "k", para que el corrector de la ortografía pueda hacer coincidir todas las formas de |k| y encontrar la palabra correcta fácilmente. Por ejemplo en aspell: #"c" es usado en "ch", así que no puede transformar "c" a "k" sin chequear #caracter(s) siguiente(s) ca => ka co => ko cu => ku que => ke qui => ki kh => k k' => k q => k qh => k q' => k Asi, no importa si el usuario deletrea la palabra "escribir" como "qhelqay", "qelqay", "q'elq'ay", "khelkay", o "quelcay". El corrector de la ortografía podría evaluar todo la entrada como |kelkay| y devuelve la ortografía correcta de "qelqey". ¿Es posible hacer algo aparecido en hunspell? La documentación en man 4 hunspell no provee mucha detalle sobre cómo el mandato REP (reemplazar) funciona. ¿Son acumulativos los cambios? Por ejemplo, si tengo: REP shon tion REP dit dict y yo escribo en inglés la palabra "dishonary". ¿Hunspell la transforma primero a "ditionary", y luego transforma "ditionary" a "dictionary"? ¿O hunspell transforma "dishonary" a "ditionary" y para? Es posible tener mandatos REP múltiples con la misma cadena? ¿Por ejemplo, puede hacer esto? REP shon tion REP shon gion ¿Si yo paso la palabra "dicshionary", hunspell la transforma a "dictionary" y si yo paso la palabra "reshon", hunspell la transforma a "region"? Yo escribí una tabla REP larga para tratar con todas las posibilidades: REP ca ka REP ca k'a REP ca kha REP ca qa REP ca q'a REP ca qha REP co ko REP co k'o REP co kho REP co qo REP co q'o REP co qho REP cu ku REP cu k'u REP cu khu REP cu ku REP cu k'u REP cu khu REP que ke REP que k'e REP que khe REP que qe REP que q'e REP que qhe REP qui ki REP qui k'i REP qui khi REP qui qi REP qui q'i REP qui qhi REP k' k REP k' kh REP k' q REP k' qh REP k' q' REP kh k REP kh k' REP kh q REP kh qh REP kh q' REP k kh REP k k' REP k q REP k qh REP k q' REP q' k REP q' kh REP q' k' REP q' q REP q' qh REP qh k REP qh kh REP qh k' REP qh q REP qh q' REP q k REP q kh REP q k' REP q qh REP q q' Luego me di cuenta que yo no tenía ninguna idea si hunspell permitería reemplazos multiples para la misma cadena. Y si se permite, malgastaría tanto tiempo procesando que no sea deseable? Gracias de antemano por cualquieres consejos pueda darme o cualquier hechizos de suerte :-), Amos Batto www.ciber-runa.net PS: Yo sé que Uds pensaba que por fin había solucionado el problema de la corrección ortográfica en lenguas aglutinativas, pero cómo pueden ver, hay lenguas mucho más complicadas que húngaro. Y quechua no es el único en este aspecto. La otra lengua mayor hablada en los Andes, aymara, es tan complicado también. Se dice que algunos de las lenguas de Sudáfrica tiene los mismos problemas con aglutinación como quechua. Probablemente alguien tendrá que escribir un corrector especial de la ortografía para lenguas aglutinativas extremas como quechua. Utilizando la bandera COMPOUNDMIDDLE de hunspell para implementar infijos verbales es un truco muy feo. Si yo hubiera designar un corrector ideal de la ortografía para quechua, tendría una bandera especial para infijos que permita la combinación de infijos dobles y triples. Asimismo con sufijos, permitiría sufijos triples. Sin embargo, no estoy seguro si pueda manejar todas las reglas raras de orden. Al otro lado, estoy seguro que calculando todas las combinaciones posibles monopoliza mucha memoria y ciclos de procesamiento. No entiendo exactamente cómo hunspell funciona, pero me imagino que estemos hablando de combinaciones al cubo de infijos y sufijos, y todas las combinaciones de estas dos juntas. Se hace peliagudo muy rápido.