Traducción
de: http://sourceforge.net/docman/display_doc.php?docid=29374&group_id=143754
por Amos Batto, <amosbatto EN
yahoo.com>, www.runasimipi.org
NOMBRE
DESCRIPCIÓN
OPCIONES GENERALES
OPCIONES PARA SUGERENCIAS
OPCIONES PARA PALABRAS COMPUESTAS
OPCIONES PARA CREACIÓN DE
AFIJOSOPCIONES PARA CREACIÓN DE AFIJOS
OTRAS OPCIONES
Análisis morfológica
Quitando sufijos dobles
Clases de afijos extendidos
Homónimos
Prefijo—dependencias de sufijo
Circumfijos
Compuestas
Codificación de caracteres
VEA
TAMBIÉN
|
|
hunspell − formato de diccionarios Hunspell y archivos de afijos |
|
|
Hunspell(1) requiere dos archivos para definir la lengua en que esté corrigendo la ortografía. El primer archivo es un diccionario conteniendo palabras de la lengua, y el segundo archivo es un archivo de afijos que define lo que significa las flags (banderas) en el diccionario. Un archivo diccionario (*.dic) contiene una lista de palabras, uno por cada línea. La primera línea de diccionarios (excepto de diccionarios personales) contiene el conteo aproximado de palabras (para el tamaño de la tabla hash con memoria optimizada). Cada palabra puede ser seguido por una barra oblicua ("/") y uno o más flags (banderas), que representan afijos o atributos especiales. Palabras en el diccionario pueden contener barras oblicuas con la sintaxis "". Por ejemplo: 2 Por defecto el formato de la flag es un carácter solo (normalmente alfabético). En un archivo diccionario Hunspell hay también un campo opcional de la morfología separado por un tabulador. Descripciones de morfología tiene un formato personalizado. Un archivo de ajifos (*.aff) puede contener muchos atributos opcionales. Por ejemplo, SET es usado para definir la codificación de caracteres usados en los archivos de diccionario y afijos. TRY define los caracteres que cambian en las sugerencias. REP define una tabla de reemplazos para correcciones de caracteres en el modo de sugerencias. PFX y SFX definen clases de prefijos y sufijos nombrados con las banderas de afijos. El ejemplo siguiente de un archivo de afjijos define la codificación UTF-8. Sugerencias de "TRY" difiere de la palabra mal-deletreada con una letra o un apóstrofo. Con estas definiciones de REP, Hunspell puede sugerir la forma correcta de la palabra cuando la palabra mal-deletreado contenga f en lugar de ph y viceversa. |
|
|
SET UTF-8
|
|
|
Hay dos clases de afijos en este diccionario. Clase A define un prefijo ‘re-’. Clase B define dos sufijos ‘-ed’. El primer sufijo puede ser añadido a una palabra si el ultimo carácter de la palabra no es 'y'. El segundo prefijo puede ser añadido a palabras terminadas con 'y'. (Vea detalles después.) El archivo diccionario siguiente usa estas clases de afijos. |
|
|
3
|
|
|
En este ejemplo, todas estas palabras sera aceptado: hello, try, tried, work, worked, rework, reworked. |
|
|
SET codificación |
|
|
Define la
codificación de palabras y morfemas en los archivos de
afijos y diccionario. Valores posibles son: |
|
|
FLAG valor |
|
|
Define el tipo de flag (bandera). Por defecto el tipo es un carácter de ASCII extendido (8-bit). Parámetro ‘UTF-8’ define flags de caracteres de codificación Unicode UTF-8. El valor ‘long’ define flags de caracteres ASCII extendido. El valor ‘num’ define flags de números decimales. Flags de este tipo numeran de 1 a 65535, y las flags son separado por comas. BUG: la flag UTF-8 no sirve en la plataforma ARM. |
|
|
COMPLEXPREFIXES |
|
|
Quita prefijos dobles (pero sólo quitar sufijos simples) para lenguas aglutinativas con un sistema de escritura de derecha a izquierda. |
|
|
LANG código_de_lengua |
|
|
Define el código de lengua. En Hunspell puede ser códigos específicos activados por el código LANG. Actualmente hay códigos específicos az_AZ, hu_HU, y TR_tr en Hunspell (vea el código fuente). |
|
|
AF número_de_alias_de_vectores_flag |
|
|
AF vector_flag |
|
|
Hunspell puede substituir conjuntos de flags por un número natural en las reglas de afijos (compresión de alias). Esto es un ejemplo de compresión de alias: |
|
|
3
|
|
|
Definiciones de AF en el archivo de afijos: |
|
|
SET UTF-8
|
|
|
También vea ejemplos de pueblas/alias.* Nota: Defina las FLAG antes de los definiciones AF. Nota II: Use la herramienta makealias en la distribución Hunspell para comprimir los archivos aff y dic. |
|
|
AM número_de_alias_de_descripción_morfológica |
|
|
AM descripción_morfológica |
|
|
También Hunspell puede substituir descripciones morfológicas por un número natural en las reglas de afijos (compresión de alias). Vea ejemplos de pruebas/alias.* |
|
|
TRY caracteres |
|
|
Hunspell puede sugerir la forma correcta de la palabra cuando estos difiere de la forma mal-deletreada por un carácter de TRY. El parámetro de TRY difiere mayúsculas de minúsculas. |
|
|
NOSUGGEST flag |
|
|
Palabras marcadas con flag NOSUGGEST no sera sugerido. Flag propuesta para palabras de groserías y maldiciones |
|
|
MAXNGRAMSUGS número |
|
|
Define el número de sugerencias de guion-n ('--'). Un valor de 0 apaga sugerencias de guion-n. |
|
|
NOSPLITSUGS |
|
|
Apaga sugerencias de palabras divididas por guion-n ('--'). |
|
|
SUGSWITHDOTS |
|
|
Añade punto(s) a sugerencias si la palabra termina en punto(s). (No use con diccionarios de OpenOffice.org, porque OpenOffice.org tiene un mecanismo automático de expansión de puntos.) |
|
|
REP número_de_definiciones_de_reemplazos |
|
|
REP búsqueda reemplazo |
|
De |
Define información especifica de la lengua en el archivo de afijos (.aff) con una tabla de reemplazos. El primer REP es la cabecera de esta tabla que define el número de definiciones de REP en las líneas siguientes. Con esta tabla, Hunspell puede sugerir las formas correctas por los fallos típicos cuando la forma incorrecta difiere por más que una letra de la forma correcta. Por ejemplo, esto es una tabla de reemplazos posibles en inglés para corregir consonantes mal-deletreados: |
|
|
REP 8
|
|
|
Nota: Es muy útil definir los reemplazos por los fallos más comunes. Con REP puede poner una prioridad más alta a un subconjunto de sugerencias de TRY (la lista de sugerencias empieza con sugerencias de REP). Nota II: Tabla de reemplazos puede ser usado para verificación más estricta de palabras compuestas (Si la generación de palabras compuestas no es permitido, o si ellos son también palabras sencillas con un fallo típico, vea CHECKCOMPOUNDREP). |
|
|
MAP número_de_definiciones_de_mapa |
|
|
MAP cadena_de_caracteres_relacionados |
|
|
Define información especifica de la lengua para caracteres que sea relacionados (i.e., más cerca de otros caracteres que no estén en el conjunto) en una tabla de MAP en un archivo de afijos (.aff). Con esta tabla, Hunspell puede sugerir las formas correctas de palabras que escoja la letra incorrecta de un conjunto relacionado más que una vez en una palabra. Por ejemplo, puede crear una mapa para relacionar "ü" (umlaut alemán) con "u" regular. En este caso, Hunspell puede corregir la palabra alemán "Fruhstuck" como "Frühstück". |
|
|
MAP 1
|
|
|
BREAK número_ de_ definiciones_break |
|
|
BREAK caracter(es) |
|
|
Define puntos donde dividan palabras y verifiquen la ortografía de partes de palabras. Esto es útil para crear palabras compuestas separadas por un carácter o un cadena de caracteres (por ejemplo, guion en inglés y alemán o guion y guion-n en húngaro). Muchas veces guiones son puntos malos de divisiones porque palabras compuestas con guiones puede contener partes que no sean validos. Con BREAK, Hunspell puede verificar la ortografía de ambos lados de palabras compuestas, dividiendo la palabra en guiones y guiones-n: |
|
|
BREAK 2
|
|
|
La divisiones son recursivas, tal que "foo-bar", "bar-foo" y "foo-foo--bar-bar" serían partes validos. Nota: COMPOUNDRULE es mejor (o será mejor) para manejar guiones y otros caracteres o cadenas de caracteres que juntan palabras compuestas. Usa BREAK, si quiere chequear palabras con guiones o otros caracteres para juntar palabras y no hay tiempo o posibilidad para describe regalas precisas de palabras compuestas con COMPOUNDRULE. (COMPOUNDRULE todavía sólo ha manejado la última sufija de la palabra compuesta.) Nota II: Para
verificación de la ortografía de la
línea de comando, define parámetros de WORDCHARS:
|
|
|
COMPOUNDRULE número_de_definiciones_de_compuestas |
|
|
COMPOUNDRULE patrón_de_compuesta |
|
|
Define patrones de palabras compuestas especiales con un sintaxis como regex. El primer COMPOUNDRULE es un cabecera con el número de definiciones de COMPOUNDRULE en las líneas siguientes. Patrones de palabras compuestas consisten de flags de compuestas y los meta-caracteres de asterisco y signos de interrogación. Una flag seguida por un ‘*’ coincide con 0 o más palabras marcadas con esta flag de compuesta. Una flag seguida por un ‘?’ coincide con 0 o 1 palabras marcadas con esta bandera compuesta. Vea ejemplos de pruebas/compuestas*.* Nota: Meta-caracteres ‘*’ y ‘?’ sólo sirve con las flags por defecto de tipo 8-bit y UTF-8. Nota II: Flags de COMPOUNDRULE todavía no son compatibles con COMPOUNDFLAG, COMPOUNDBEGIN, ...etc. (Use estas flags en palabras diferentes). |
|
|
COMPOUNDMIN número |
|
|
El tamaño mínimo de palabras en palabras compuestas. El valor por defecto es 3 letras. |
|
|
COMPOUNDFLAG flag |
|
|
Palabras marcadas con COMPOUNDFLAG puede ser en palabras compuestas (excepto de caso que la palabra es más corta que COMPOUNDMIN). Afijos con COMPOUNDFLAG también permiten compuestos de palabras afijadas. |
|
|
COMPOUNDBEGIN flag |
|
|
Palabras marcadas con COMPOUNDBEGIN (o con un afijo señalado) puede ser el primer elemento en palabras compuestas. |
|
|
COMPOUNDLAST flag |
|
|
Palabras marcadas con COMPOUNDLAST (o con un afijo señalado) puede ser el último elemento en palabras compuestas. |
|
|
COMPOUNDMIDDLE flag |
|
|
Palabras marcadas con COMPOUNDMIDDLE (o con un afijo señalado) puede ser elementos medios en palabras compuestas. |
|
|
ONLYINCOMPOUND flag |
|
|
Sufijos marcados con ONLYINCOMPOUND solamente puede ser en palabras compuestas (elementos-fuge en alemán, German, fogemorfemas en sueco). Flag ONLYINCOMPOUND también sirve con palabras (vea tests/onlyincompound.*). |
|
|
COMPOUNDPERMITFLAG flag |
|
|
Prefijos son permitido en el comienzo de palabras compuestas, sufijos son permitido en el fin de palabras compuestas por defecto. Afijos con COMPOUNDPERMITFLAG puede ser adentro de palabras compuestas. |
|
|
COMPOUNDFORBIDFLAG flag |
|
|
Sufijos con esta flag no permite que la palabra afijada sea compuesto. |
|
|
COMPOUNDROOT flag |
|
|
COMPOUNDROOT marca las raíces de palabras compuestas en el diccionario. (Actualmente es sólo usado en el código especifico de húngaro.) |
|
|
COMPOUNDWORDMAX número |
|
|
Define el conteo máximo de palabras en una palabra compuesta. (Por defecto es infinito.) |
|
|
CHECKCOMPOUNDDUP |
|
|
No permite duplicación adentro de palabras compuestas (e.g., foofoo). |
|
|
CHECKCOMPOUNDREP |
|
|
No permite que la palabra sea compuesto, si (generalmente mal-deletreada) palabra compuesta puede ser un palabra no-compuesta con un fallo de REP. Útil en lenguas con ortografía que sea compuesto fácilmente. |
|
|
CHECKCOMPOUNDCASE |
|
|
No permite caracteres mayúsculas en una palabra en una palabra compuesta. |
|
|
CHECKCOMPOUNDTRIPLE |
|
|
No permite que la palabra sea compuesto si la palabra compuesta contiene letras triples (e.g., foo|ox o xo|oof). BUG: No funciona con bytes-múltiples en codificación UTF-8 (sólo funciona con caracteres ASCII de 7-bit). |
|
|
CHECKCOMPOUNDPATTERN número_de_definiciones_de_checkcompoundpattern |
|
|
CHECKCOMPOUNDPATTERN caracteres_comienzo caracteres_fin |
|
|
No permite que la palabra sea compuesto, si el primer palabra en la palabra compuesta termina con caracteres_fin, y la próxima palabra comienza con caracteres_comienzo. |
|
|
COMPOUNDSYLLABLE silabas_máximas vocales |
|
|
Necesita para reglas especiales de palabras compuestas en húngaro. El primer parámetro es el número máximo de sílabas que puede ser en un compuestos, si palabras en compuestos son mas que COMPOUNDWORDMAX. El segundo parámetro es la lista de vocales (para calcular silabas). |
|
|
SYLLABLENUM flags |
|
|
Necesita para reglas especiales de palabras compuestas en húngaro. |
|
|
PFX flag producto número |
|
|
PFX flag quitando prefijo condición descripción_morfológica |
|
|
SFX flag producto número |
|
|
SFX flag quitando sufijo condición descripción_morfológica |
|
|
Un afijo es un prefijo o un sufijo pegado a las palabras-raíces para construir otras palabras. Puede definir clases de afijos con un número arbitrario de reglas. Clases de afijos son marcado con flags de afijos. La primera línea de la definición de una clase de afijos es la cabecera. Los campos de una cabecera de una clase de afijos: (0) Nombre de opción (PFX o SFX) (1) Flag (nombre de la clase de afijos) (2) Producto (permiso para combinar prefijos y sufijos). Valores posibles: Y (sí) o N (no) (3) Conteo de líneas siguientes con definiciones de reglas.
(0) Nombre de opción (1) Flag (2) Caracteres quitados del comienzo (en reglas de prefijos) o del fin (en reglas de sufijos) de la palabra (3) afijo (opcionalmente con flags de clases continuadas, separado por una barra oblicua "/") (4) condición Condición es un expresión regular simplificada que debe ser cumplido antes que el afijo pueda ser añadido. Si la condición es un punto solo, no hay una condición para chequear. Si usa un punto en una cadena de caracteres, el punto indica cualquier carácter. Caracteres adentro corchetes indica que el carácter pueda ser cualquier de los caracteres listados. (Un guion adentro corchetes sólo indica el carácter de un guion; no indica un ámbito de caracteres como en expresiones regulares). Un circunflejo (^) indica que el carácter no pueda ser cualquier de los caracteres listados. (5) Descripción morfológica especializada |
|
|
CIRCUMFIX flag |
|
|
Use esta flag cuando el palabra no puede tener un prefijo sin un sufijo o viceversa. Si es un prefijo, indica que sólo puede añadirlo si la palabra también contiene un sufijo marcado con una flag CIRCUMFIX, o viceversa si es un sufijo. |
|
|
FORBIDDENWORD flag |
|
|
Esta flag marca formas prohibidas de palabras. Porque formas afijadas son también prohibido, puede sustraer un subconjunto del conjunto de palabras afijadas y compuestas. |
|
|
KEEPCASE flag |
|
|
Prohíbe formas mayúsculas de palabras marcadas con la flag KEEPCASE. Útil para ortografías especiales (a menudo medidas y monedas son minúsculas en textos mayúsculas) y sistemas de escritura (e.g., minúsculas en caracteres IPA). Nota: Con la declaración CHECKSHARPS, palabras con el s sostenido y la flag KEEPCASE puede ser mayúsculas, pero formas mayúsculas de estas palabras no puede contener s sostenido, solo SS. Vea el ejemplo de germancompounding en el directorio tests de la distribución Hunspell. |
|
|
LEMMA_PRESENT flag |
|
na~~n |
Por lo general hay palabras de diccionario como lemmas en la salida de la análisis morfológica. A veces palabras del diccionario no son lemmas, pero son bases afijadas (no reales) y bases virtuales. En este caso, lemmas (bases reales) necesitan indicar que son lemmas en su descripción morfológica, y necesitan prohibir lemmas no reales en la análisis morfológica. |
|
|
NEEDAFFIX flag |
|
|
Esta flag marca bases virtuales en el diccionario. Sólo formas afijadas de estas palabras puede ser aceptado por Hunspell, excepto que sea un homónimo o un afijo de cero. NEEDAFFIX funciona también con combinaciones de prefijos y sufijos. (Vea tests/pseudoroot5.*) |
|
|
PSEUDOROOT flag |
|
|
Ya no recomendado. (Nombre previo de la opción NEEDAFFIX.) |
|
|
WORDCHARS caracteres |
|
|
Añade caracteres validos adicionales para palabras. WORDCHARS extiende las cadenas chequeado por la interfaz de comando de línea. Por ejemplo, punto, guion, guion-n, números, y el signo por ciento son caracteres validos de palabras en húngaro. |
|
|
CHECKSHARPS |
|
|
La letra SS en palabras mayúsculas (en aleman) puede ser s sustenido mayúscula (ß). Hunspell puede manejar este caso especial con la declaración CHECKSHARPS en verificación de ortografía y sugerencias. (Vea también la flag KEEPCASE y el ejemplo tests/germancompounding) |
|
|
Las reglas Hunspell de afijos tiene un campo opcional de descripción morfológica. Hay un campo opcional aparecido en el archivo de diccionario, separado or un tabulador: |
|
|
palabra/flags morfología
|
|
|
Define un diccionario y archivo de afijos con información morfológica: Archivo de afijo test.aff: |
|
|
SFX X Y 1
|
|
|
Archivo de diccionario test.dic: |
|
|
drink/X [VERB]
|
|
|
Archivo de prueba test.txt: |
|
|
drink
|
|
|
Prueba: |
|
|
$ hunmorph test.aff test.dic test.txt
|
|
|
Puede ver en el ejemplo que la análisis morfológica concatena los campos en el estilo item and arrangement. |
|
|
El algoritmo original de Ispell quitaba sólo un sufijo, pero Hunspell puede quitar dos sufijos. Quitando sufijos dobles es una mejoramiento significante en el manejo de el número inmenso de sufijos en lenguas aglutinativas. Extendiendo el ejemplo previo añadiendo un segundo sufijo (class de afijos Y será la continuación del sufijo 'able'): |
|
|
SFX Y Y 1
|
|
|
Archivo del diccionario test.dic : |
|
|
drink/X [VERB]
|
|
|
Archivo de test.txt: |
|
|
drink
|
|
|
Prueba: |
|
|
$ hunmorph test.aff test.dic test.txt
|
|
|
Teóricamente con sufijos dobles, Hunspell puede reducir el número de reglas para sufijos a la raíz cuadrada. En nuestro practico, podemos haber elaborado la morfología de húngaro sin quitando sufijos dobles. Nota: En la gramática del pre-procesador Hunlex, las divisiones de sufijos pueden ser no sólo dobles, pero también múltiples. |
|
|
Hunspell puede manejar más de 65000 clases de afijos. Hay dos sintaxis nuevas para flags en archivos de afijos y diccionarios. FLAG
long |
|
|
FLAG long
|
|
|
Palabra en el diccionario con las flags Y1, Z3, F?: |
|
|
foo/Y1Z3F?
|
|
|
FLAG num
|
|
|
FLAG num
|
|
|
Ejemplo de diccionario: |
|
|
foo/65000,12,2756
|
|
|
Un diccionario Hunspell puede contener elementos repetidos que son homónimos: |
|
|
work/A [VERBO]
|
|
|
Un archivo de afijos: |
|
|
SFX A Y 1
|
|
|
Archivo de prueba: |
|
|
works
|
|
|
Prueba: |
|
|
> works
|
|
|
Esta característica también es una manera de prohibir combinaciones ilegales de afijos en casos difíciles. |
|
n |
Un efecto secondario interesante de quitando afijos múltiples es que el tratamiento apropriado de circumfijos es ahora gratis. Por ejemplo, en húngaro superlativos son formado por el prefijo de leg- y el sufijo de -bb añadido a la base del adjetivo. Un problema con arquitectura de uno nivel que no haya una manera de hacer prefijos y sufijos interdependientes, y por eso formas incorrectas son reconocidos como validas, i.e., *legvén = leg + vén ‘old’. Hasta la introdución de grupos, un tratamiento especial del superlativo tenía que ser integrado en el código previo de Hunspell. Esto seria legitimo por un caso solo, pero dependencias prefijo—sufijo son muy comunes en patrones derivativos con cambios de categoria (cf. inglés payable, non-payable pero *non-pay o drinkable, undrinkable pero *undrink). En otras palabras, el prefijo un- es sólo legitimo si la base drink tiene el sufijo -able. Si la regla de una afijo es sólo verificado con la base, no hay una manera para expresar esta dependencia y el sistema no va a generar suficiente o va a generar demasiado. En el próximo ejemplo, clase R de sufijos será una continuación de clase P de prefijos: |
|
|
PFX P Y 1
|
|
|
Diccionario: |
|
|
2
|
|
|
drink/RQ |
[verbo] |
||
|
drink/S |
[sustantivo] |
|
|
Análisis morfológica: |
|
|
> drink
|
|
|
Afijos condicionales implementados por una clase de continuación no son suficiente por circumfijos, porque un circumfijo es un afijo en la morfología. Necesita también la opción CIRCUMFIX para análisis correcta de la morfología. |
|
|
# circumfijos: ~ obligar combinaciones de prefijos y sufijos
|
|
|
Diccionario: |
|
|
1
|
|
|
nagy/C |
[MN] |
|
|
Análisis: |
|
|
> nagy
|
|
|
Componiendo palabras libremente disminuye la precisión de la reconocimiento de palabras y análisis morfológica. Aunque ispell permite que las bases pueden ser intercambiando en palabras compuestas, esto no restricta suficiente las posibilidades. Por ejemplo: |
|
|
# archivo de afijos
|
|
|
2
|
|
|
Con este caso, foobar y barfoo son ambas palabras aceptadas. Hunspell ha mejorado esto con la introducción de direcciones de componer, i.e., características léxicas que especifica si una base puede ocurrir en el comienzo o fin de palabras compuestas. Esto, sin embargo, todavía no fue suficiente para manejar los patrones intricados de palabras compuestas, y no digamos ya las reglas idiosincrasicas de guiones en algunas lenguas. Actualmente el algoritmo de Hunspell permite cualquier forma afijada de palabras que son marcado como miembros posibles de compuestos. Hunspell mejoró esto, y sus reglas de verificación recursiva posibilitan la implementación de los compuestos intricas de húngaro. Por ejemplo, usando las opciones COMPOUNDWORDMAX, COMPOUNDSYLLABLE, COMPOUNDROOT, y SYLLABLENUM, la regla húngara de ‘6--3’ puede ser implementado. En una otra ejemplo en húngaro, sufijos derivativos a menudo modifican las propriedades de compuestos. Hunspell permite las flags de compuestos en los afijos, y hay dos flags especiales (COMPOUNDPERMITFLAG y COMPOUNDFORBIDFLAG) para permitir o prohibir el compuesto de las derivaciones. Sufijos con esta flag prohibe el compuesto de la palabra afijado. También hay algunos características en Hunspell para manejar los compuestos alemanes. |
|
|
# Compuestos alemanes
|
|
|
Ejemplo de diccionario: |
|
|
4
|
|
|
Palabras compuestas aceptables con el ejemplo previo: |
|
|
Computer
|
|
|
Compuestos no aceptables: |
|
|
computer
|
|
|
Sin embargo, esta solución todavía no es perfecta, y será reemplazado por un algoritmo para chequear patrones que es integrado con el búfer de entrada. Patrones describiendo compuestos viene como un recurso separado de entrada que refiere a las propriedades de partes constituentes (e.g., el número de silabas, flags de afijos, y el manejo de guiones). Estos patrones son verificado con partes posibles de compuestos, chequeando si son bien formados. |
|
|
Problemas con la codificación 8-bit. Ambos Ispell y Myspell usen codificación de caracteres ASCII 8-bit que es un grande deficiencia en términos scalables. Aunque una lengua como húngaro tiene un conjunto de caracteres ASCII estandartes (ISO 8859-2), no se permite una implementación completa de convenciones de la ortografía húngara. Por ejemplo, el signo ’--’ (guion-n) no existe en este conjunto de caracteres, aunque es el símbolo oficial para delimitar cláusulas parentéticas y puede ser usado en palabras compuestas como un guion 'grande' especial. MySpell tiene algunas tablas de codificación 8-bit, pero hay algunas lenguas sin codificación 8-bit estándar. Por ejemplo, muchas lenguas africanas tienen caracteres no latinos o latinos extendidos. Asimismo, usando la ortografía original de algunas nombres extranjeros como Ångström o Molière es recomendado por la norma de ortografía húngara. Desde que los caracteres ’Å’ y ’è’ no son parte de ISO 8859-2, cuando ellos son combinados con caracteres solamente en ISO 8859-2 (como -bo=l elativo, -to=l alativo o -ro=l delativo con agudo doble), estos resultan en palabras (como Ångströmro=l o Molière-to=l.) que no puede ser codificado usando sólo uno conjunto ASCII de codificación. Hace mucho tiempo estos problemas en relación de codificacion ASCII 8-bit ha sido reconocido por defensores de Unicode. Desafortunadamente, cambiando a Unicode (e.g., UTF-16) requeriría mucha optimización de código y dañaría la eficiencia del algoritmo. El algoritmo Dömölki usado para chequear condiciones de afijos utiliza un array de caracteres de 256 bytes que crecería a 64K con codificación Unicode. Desde que generando afijos para lenguas aglutinativas puede crear cientos de tales arrays (en el caso de húngaro, hay cerca de 300 o más porque almacenamiento redundante de patrones de afijos idénticos en estructura mejora eficiencia), cambiando a Unicode tiene costos muy altos de recursos. Sin embargo es claro que hay ventajas de una aplicacion verdaderamente multilingüe. Por eso, nuestro plan por mucho tiempo ha sido extender la arquitectura en esta dirección. Una solución híbrida. Recientemente implementamos con éxito manejo de Unicode que sea eficaz en términos de memoria y tiempo de procesamiento. En codificación de caracteres que no sea UTF-8, Hunspell funciona con los algoritmos 8-bit originales, pero con archivos de diccionario y afijos en UTF-8, hunspell manipula las cadenas y chequea las condiciones con un algoritmo híbrido que abarque Unicode: Afijos y palabras son guardado en UTF-8. Durante el análisis ellos son manejado en UTF-8 por lo general, pero en verificación de condiciones y la generación de sugerencias ellos son convertido a UTF-16. El algoritmo de Dömölki es usado por la almacenamiento y verificación de caracteres 7-bit ASCII (ISO 646), y ordenar listas UTF-16 para otros caracteres Unicode de patrones condicionales. Todavía Hunspell solamente ha implementado los primeros 65536 caracteres (Plano Multilingüe Básico) del estándar de Unicode. |
|
|
hunspell (1), ispell (1), ispell (4) |