Tamil All Character Encoding ( TACE16 ) es un esquema de codificación de caracteres basado en Unicode de 16 bits para el idioma tamil . [1] [2]
Controladores de teclado y fuentes
El controlador de teclado para este esquema de codificación está disponible en el sitio web de la Universidad Virtual Tamil [3] de forma gratuita. [4] Utiliza diseños de teclado Tamil99 y Tamil Typewriter , que están aprobados por el gobierno de Tamil Nadu, y asigna las pulsaciones de teclas de entrada a sus caracteres correspondientes del esquema TACE16. [2] Para leer los archivos que se crean usando el esquema TACE16, las fuentes Unicode Tamil correspondientes para este esquema de codificación también están disponibles en el mismo sitio web. [3] [4] Estas fuentes no sólo tienen mapeo de signos para los caracteres de formato TACE16, sino también para la actual codificación Unicode tanto para ASCII y caracteres Tamil , de modo que puedan proporcionar compatibilidad para la lectura de archivos existentes que se crean mediante la actualidad Esquema de codificación Unicode para el idioma tamil .
Conjunto de caracteres
Todos los personajes de este esquema de codificación se encuentran en el área de uso privado de la multilingüe plano básico de Unicode 's juego de caracteres universal .
Consonantes → Vocales ↓ | E10 | E18 | E1A | E1F | E20 | E21 | E22 | E23 | E24 | E25 | E26 | E27 | E28 | E29 | E2A | E2B | E2C | E2D | E2E | E2F | E30 | E31 | E32 | E33 | E34 | E35 | E36 | E37 | E38 | E39 | E3A | E3B | E3C | E3D | E3E | E3F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | ௳ | ௦ | அரைக்கால் | ் | க் | ங் | ச் | ஞ் | ட் | ண் | த் | ந் | ப் | ம் | ய் | ர் | ல் | வ் | ழ் | ள் | ற் | ன் | ஜ் | ஶ் | ஷ் | ஸ் | ஹ் | க்ஷ் | ||||||||
1 | ௴ | ௧ | கால் | அ | க | ங | ச | ஞ | ட | ண | த | ந | ப | ம | ய | ர | ல | வ | ழ | ள | ற | ன | ஜ | ஶ | ஷ | ஸ | ஹ | க்ஷ | ||||||||
2 | ௵ | ௨ | அரை | ா | ஆ | கா | ஙா | சா | ஞா | டா | ணா | தா | நா | பா | மா | யா | ரா | லா | வா | ழா | ளா | றா | னா | ஜா | ஶா | ஷா | ஸா | ஹா | க்ஷா | |||||||
3 | ௶ | ௩ | முக்கால் | ி | இ | கி | ஙி | சி | ஞி | டி | ணி | தி | நி | பி | மி | யி | ரி | லி | வி | ழி | ளி | றி | னி | ஜி | ஶி | ஷி | ஸி | ஹி | க்ஷி | |||||||
4 | ௷ | ௪ | அரைவீசம் | ீ | ஈ | கீ | ஙீ | சீ | ஞீ | டீ | ணீ | தீ | நீ | பீ | மீ | யீ | ரீ | லீ | வீ | ழீ | ளீ | றீ | னீ | ஜீ | ஶீ | ஷீ | ஸீ | ஹீ | க்ஷீ | |||||||
5 | ௸ | ௫ | வீசம் | ு | உ | கு | ஙு | சு | ஞு | டு | ணு | து | நு | பு | மு | யு | ரு | லு | வு | ழு | ளு | று | னு | ஜு | ஶு | ஷு | ஸு | ஹு | க்ஷு | |||||||
6 | ௹ | ௬ | மூவீசம் | ூ | ஊ | கூ | ஙூ | சூ | ஞூ | டூ | ணூ | தூ | நூ | பூ | மூ | யூ | ரூ | லூ | வூ | ழூ | ளூ | றூ | னூ | ஜூ | ஶூ | ஷூ | ஸூ | ஹூ | க்ஷூ | |||||||
7 | ௺ | ௭ | அரைமா | ெ | எ | கெ | ஙெ | செ | ஞெ | டெ | ணெ | தெ | நெ | பெ | மெ | யெ | ரெ | லெ | வெ | ழெ | ளெ | றெ | னெ | ஜெ | ஶெ | ஷெ | ஸெ | ஹெ | க்ஷெ | |||||||
8 | பௌர்ணமி | ௮ | ஒருமா | ே | ஏ | கே | ஙே | சே | ஞே | டே | ணே | தே | நே | பே | மே | யே | ரே | லே | வே | ழே | ளே | றே | னே | ஜே | ஶே | ஷே | ஸே | ஹே | க்ஷே | |||||||
9 | அமாவாசை | ௯ | இரண்டுமா | ை | ஐ | கை | ஙை | சை | ஞை | டை | ணை | தை | நை | பை | மை | யை | ரை | லை | வை | ழை | ளை | றை | னை | ஜை | ஶை | ஷை | ஸை | ஹை | க்ஷை | |||||||
A | கார்த்திகை | ௰ | மும்மா | ொ | ஒ | கொ | ஙொ | சொ | ஞொ | டொ | ணொ | தொ | நொ | பொ | மொ | யொ | ரொ | லொ | வொ | ழொ | ளொ | றொ | னொ | ஜொ | ஶொ | ஷொ | ஸொ | ஹொ | க்ஷொ | |||||||
B | ராஜ | ௱ | நாலுமா | ோ | ஓ | கோ | ஙோ | சோ | ஞோ | டோ | ணோ | தோ | நோ | போ | மோ | யோ | ரோ | லோ | வோ | ழோ | ளோ | றோ | னோ | ஜோ | ஶோ | ஷோ | ஸோ | ஹோ | க்ஷோ | |||||||
C | ௐ | ௲ | முந்திரி | ௌ | ஔ | கௌ | ஙௌ | சௌ | ஞௌ | டௌ | ணௌ | தௌ | நௌ | பௌ | மௌ | யௌ | ரௌ | லௌ | வௌ | ழௌ | ளௌ | றௌ | னௌ | ஜௌ | ஶௌ | ஷௌ | ஸௌ | ஹௌ | க்ஷௌ | |||||||
D | அரைக்காணி | ஃ | ஸ்ரீ | |||||||||||||||||||||||||||||||||
mi | காணி | |||||||||||||||||||||||||||||||||||
F | முக்காணி |
Nota: | |
---|---|
Agregado recientemente. No presente en Unicode_v6.3. | |
Asignado para investigaciones (PNL) | |
Para uso futuro |
Análisis de TACE16 sobre el estándar actual Unicode para el idioma tamil
Análisis de TACE16 sobre el estándar Unicode actual para el idioma tamil :
Problemas con el actual Unicode para el idioma tamil
El actual estándar Unicode para tamil no se considera adecuado para el uso eficiente y efectivo del tamil en computadoras, debido a las siguientes razones: [1]
- El código Unicode Tamil tiene posiciones de código solo para 31 de los 247 caracteres Tamil. Estos 31 caracteres incluyen 12 vocales, 18 agara-uyirmey, un aytham, sin incluir cinco Grantha agara-uyirmey, que también cuentan con espacio de código en Unicode Tamil. Los otros personajes tamiles deben renderizarse usando un software separado. Solo el 10% de los caracteres tamil tienen espacio de código en el tamil actual Unicode. El 90% de los caracteres tamil que se utilizan en el intercambio de texto general no cuentan con espacio de código.
- Los Uyir-meys que quedan fuera en el actual Unicode Tamil son caracteres simples, al igual que A, B, C, D son caracteres en inglés. Uyir-meys no son glifos, ni ligaduras, ni caracteres en conjunción como se supone en Unicode. ka, kA, ki, kI, etc., son caracteres para Tamil.
- En cualquier texto llano en tamil, las consonantes vocales (uyir-meys) forman del 64 al 70%; Las vocales (uyir) forman del 5 al 6% y las consonantes (meys) del 25 al 30%. Romper letras de alta frecuencia como vocales-consonantes en glifos es muy ineficaz.
- Este tipo de codificación, que requiere un motor de renderizado para realizar un carácter durante la computación, no es adecuado para aplicaciones como desarrollos de software de sistemas en tamil, búsqueda y clasificación y procesamiento de lenguaje natural (NLP) en tamil. Consume más tiempo y espacio, lo que hace que el proceso informático sea muy ineficaz. Para tales aplicaciones, se requiere una implementación de Nivel 1 donde todos los caracteres de un idioma tienen posiciones de código en la codificación, como el inglés.
- Esta codificación se basa en ISCII (1988) y, por lo tanto, los caracteres no están en el orden natural de secuencia. Requiere un algoritmo de clasificación complejo para organizarlos en el orden natural de secuencia.
- Utiliza varios puntos de código para representar caracteres individuales. Múltiples puntos de código conducen a vulnerabilidades de seguridad, combinaciones ambiguas y requieren el uso de normalización.
- El simple conteo de letras, la clasificación y la búsqueda son ineficaces.
- Requiere caracteres ocultos de tipo ZWJ / ZWNJ.
- Necesita una tabla de excepciones para evitar combinaciones ilegales de puntos de código.
- El bloque Unicode Indic se basa en un edificio enorme, complejo y propenso a errores, basado en una codificación que NO está diseñada para durar.
- El primer punto de código dice "Tamil Sign Anusvara - No se usa en Tamil".
- Se suponía que la intercalación era la misma que la de Devanagari: utiliza incorrectamente una codificación ambigua para representar el mismo carácter.
- Codifica 23 consonantes vocales (23 consonantes + Ü) y las llama como consonantes, contra la gramática tamil.
- Antinatural para Speech to Text / Text to Speech.
- Ineficiente para almacenar, transmitir y recuperar (por ejemplo, lectura y escritura de archivos, Internet, etc.).
- El procesamiento complejo dificulta el desarrollo.
- Necesita normalización para la comparación de cadenas.
- Una secuencia de caracteres puede corresponder a un solo glifo, es decir, ச + ெ◌ + ◌ா = ெசா. Los personajes no son grafemas. Según Unicode ெசா es un grafema; pero ச, ெ◌, ◌ா son caracteres.
- Requiere composición dinámica: un elemento de texto codificado como una secuencia de un carácter base seguido de una o más marcas de combinación.
- Hay dos métodos para reproducir las consonantes vocales. Esto conduce a la ambigüedad en la representación de personajes.
- El actual Unicode no es eficaz para analizar. Por ejemplo, el nombre திருவள்ளுவர் parece que debería tener siete letras. Sin embargo, según Unicode, este nombre tiene doce caracteres: த ◌ி ர ◌ு வ ள ◌் ள ◌ு வ ர ◌
- Para contar correctamente las letras de este nombre, un desarrollador experto tuvo que escribir un programa complejo y presentarlo como un documento técnico en una conferencia de informática tamil. Para comparar, contar letras en una palabra en inglés es un ejercicio que se deja a un programador principiante. Estos problemas se desencadenan porque Unicode trata un script simple como el tamil como un script complejo. Por ejemplo, en la biblioteca de Python open-tamil , [5] que usa el estándar actual Unicode para Tamil, para contar el número de letras Tamil en el texto dado, la función tamil.utf8.get_letters se usa primero para analizar el texto en un List y luego devuelve la longitud de la lista como el recuento del número de letras. [6] Este tipo de lógica de programación compleja o una capa adicional adicional de requisitos de marco es necesaria cuando un script simple como el tamil se trata como un script complejo.
- La política estándar de Unicode es codificar solo caracteres, no glifos. Sin embargo, [7] porque el estándar Unicode Tamil incluye los signos de las vocales como caracteres combinados. Estos signos que no tienen ningún significado para un lector tamil se mostrarían tal cual mediante motores de configuración de caracteres que detectan un espacio en blanco entre ellos y un carácter base. Por tanto, Unicode introduce el círculo punteado como un carácter tamil.
- Unicode Tamil no es totalmente compatible con muchas plataformas principalmente porque el tamil se trata como un script complejo que requiere un procesamiento complejo.
- Dado que todas las ineficiencias mencionadas anteriormente consumen más ciclos de procesamiento de un procesador para una máquina de lo necesario, aumentará el uso total de energía durante la vida útil (electricidad) de una máquina que procesa Unicode Tamil. Por ejemplo, al procesar un solo carácter tamil kI (கீ), tiene que procesar tanto el modificador de consonante como de vocal, lo que duplica el consumo de ciclos de procesamiento de un procesador.
Análisis de TACE16 sobre Unicode Tamil
Los siguientes datos proporcionan la comparación del análisis de la codificación Unicode actual para el idioma tamil frente a TACE16 sobre gobierno electrónico y navegación: [1]
- TACE16 es eficiente sobre Unicode Tamil entre un 5,46 y un 11,94 por ciento en el caso de la aplicación de almacenamiento de datos.
- TACE16 es eficiente sobre Unicode Tamil en aproximadamente un 18,69 a un 22,99 por ciento en el caso de Clasificación de datos de índice.
- TACE16 es eficiente sobre Unicode Tamil en aproximadamente un 25,39% cuando todos los datos son de Tamil. La secuencia de clasificación predeterminada seguida (binaria) mientras se utilizan los valores de espacio de código en el nuevo TACE16 no es según el orden del diccionario tamil. Algunos de los uyir-meys (Agara-uyirmeys) tienen prioridad sobre las vocales y otros Uyirmeys en el Nuevo TACE16, las vocales y agarauyir-meys están en el bloque 0B80 - 0B8F y los otros Uyir-meys están en el 0800 a 08FF. Por esta razón, la clasificación de datos Unicode se ve mejor que los datos TACE16.
- TACE16 clasifica más rápido en Unicode Tamil entre un 0,31 y un 16,96 por ciento.
- La creación de índices en datos TACE16 es un 36,7% más rápida que Unicode.
- Para la búsqueda de clave completa en campos indexados, TACE16 funcionó mejor que Unicode Tamil hasta en un 24.07%. En el caso de los campos no indexados, TACE16 también se desempeñó mejor que Unicode Tamil hasta en un 20,9%.
- La representación de datos tamil estáticos estaba bien con TACE16.
Ventajas de TACE16 sobre Unicode Tamil
El esquema de codificación de caracteres TACE16 no solo supera todos los problemas con el actual estándar de codificación Unicode para el lenguaje tamil que se mencionan anteriormente, sino que también proporciona ventajas adicionales sobre las principales mejoras de rendimiento tanto en el tiempo de procesamiento como en el espacio de procesamiento, que son los principales factores que afectan la ejecución eficiente y rápida de cualquier programa informático. Este sistema tiene las siguientes ventajas adicionales: [1]
- La codificación es universal, ya que abarca todos los caracteres que se encuentran en el intercambio de texto tamil general.
- La colación es secuencial de acuerdo con el valor del código.
- La codificación es inequívoca.
- Cualquier punto de código dado siempre representa el mismo carácter.
- No hay ambigüedad como en el actual Unicode Tamil .
La codificación Unicode Tamil tenía tantos problemas que alguien creó la siguiente propuesta para volver a codificar Tamil. [8] Esto fue rechazado por Unicode, quien dijo que la recodificación sería dañina y no había evidencia convincente de que la codificación Unicode Tamil sea mala. [9]
Este sistema tiene las siguientes ventajas para la programación informática:
- Se simplifica el diseño de software básico para adaptarse a los caracteres tamiles y su procesamiento.
- La clasificación y la búsqueda son muy sencillas.
- Para una máquina, TACE16 requiere menos ciclos de procesamiento de un procesador (que a su vez consume menos electricidad) que Unicode Tamil . Básicamente, TACE16 es más ecológico que Unicode Tamil .
- TACE16 permite hacer programación basada en la gramática tamil, lo cual no es muy fácil en Unicode Tamil (necesita desarrollo de framework adicional).
- La codificación es muy eficiente de analizar. Mediante una simple operación aritmética se pueden analizar los caracteres. En programación de computadoras, el segundo método es muy eficiente en términos de desempeño en un gran conjunto de caracteres. Además, estos métodos siguen la gramática tamil básica que Consonant + Vowel = Vowel-Consonant (UyirMei) que no se sigue en Unicode Tamil .
Método 1 (por operaciones aritméticas simples): க் + இ = கி E210 (க்) + E203 (இ) - E200 (Constante) = E213 (கி) Método 2: க் (E210) + இ (E203) = கி (E213) E210 (க்) | (E203 (இ) y 000F (constante) ) = E213 (கி)
- Es muy eficaz dividir un carácter vocal-consonante (UyirMei) en su correspondiente vocal y consonante. Esto es muy eficiente en términos de rendimiento en datos de gran tamaño.
/ * Para obtener Vocal * / E213 ( க ி ) & ' F20F ( Constante ) ' = E203 ( இ ) / * Para obtener la consonante * / E213 ( க ி ) & ' FFF0 ( Constante ) ' = E210 ( க ் )
- Es muy eficiente encontrar si un carácter es vocal o consonante o vocal-consonante (UyirMei) o números.
/ * | - Bitwise OR * & - Bitwise AND *! - Bit a bit NOT * ^ - Bit a bit XOR * || - Condicional OR * && - Condicional Y * / c = la codificación TACE16 para un carácter tamil / * Para comprobar si un carácter es vocal * / / * Método 1 * / (( c > = E201 ) && ( c <= E20C )) == true // => Vocal / * Método 2 - Si el código posiciona E200, E20E, E20F no se utilizan para ningún otro propósito * / ((( c & ' E20F ( Constante ) ' ) == c ) && ( c ! = E20D )) == true // => Vocal (( ! (( C & ' E20F ( Constante ) ' ) ^ c )) && ( c ! = E20D )) == verdadero // => Vocal / * Para comprobar si un carácter es consonante o vocal-consonante (UyirMei) * / x = ( c & ' 000 F ( constante ) ' ) // Si c es vocal o vocal-consonante, entonces x = Número único para cada vocal comenzando desde 1 ((( c > = E210 ) && ( c <= E38C )) && ( x == 0 )) == verdadero // => Consonante ((( c > = E210 ) && ( c <= E38C ) ) && (( x > = 1 ) && ( x <= 12 ))) == verdadero // => Vocal-Consonante (UyirMei) / * Para comprobar si un carácter es un número tamil * / / * Método 1 * / (( c > = E180 ) && ( c <= E18C )) == true // => Número Tamil / * Método 2 * / // Si las posiciones de código E18D-E18F no se utilizan para ningún otro propósito ( c & ' E18F ( Constante ) ' ) == c // => Número Tamil ( ! (( C & ' E18F ( Constante ) ' ) ^ c )) = = verdadero // => Número Tamil // Si las posiciones de código E18D-E18F se usan para cualquier otro propósito, entonces se puede usar el Método 1 o el método siguiente * / (( ! (( c & ' E18F ( Constante ) ' ) ^ c )) && (( c & ' 000 F ( Constante ) ' ) <= 12 )) == verdadero // => Número tamil
- Es muy fácil convertir números a números Tamil (nuevo formato de número Tamil) y viceversa (igual que Unicode Tamil ).
/ * Para convertir un número a un nuevo formato de número tamil y viceversa, la conversión directa de dígito a dígito es suficiente. * / / * Para convertir un número al nuevo formato de número Tamil * / n = número de un solo dígito ( 0 - 9 ) / * Método 1 * / ( n & ' E18F ( Constante ) ' ) // => Número Tamil / * Método 2 * / ( n | ' E180 ( Constante ) ' ) // => Número tamil / * Para convertir un nuevo formato de número tamil a un número * / c = carácter numérico tamil de un solo dígito ( ௦ - ௯ ) ( c & ' 000 F ( constante ) ' ) // => Número
Reclamaciones alternativas
Tamil abierto
El proyecto open-tamil [10] proporciona muchas de las operaciones comunes, por ejemplo, extraer letras de una cadena codificada en Unicode UTF-8, ordenar, buscar, etc. Aunque el proyecto afirma que cumple con el nivel 1 del procesamiento de texto en tamil sin utilizar TACE16, el proyecto todavía está escrito sobre la lógica de programación adicional que se necesita para el actual estándar Unicode para tamil.
#! / usr / bin / env python import codecs importa tamil.utf8 como utf8 con codecs . open ( 'singl' , 'w' , encoding = 'utf-8' ) como ff : letters = utf8 . get_letters ( u "கூவிளம் என்பது என்ன சீர்" ) para letra en letras : ff . escribir ( letra ) imprimir ( letra ) ff . escribir ( '' ) ff . cerrar ()
genera la salida, salida: கூ வி ள ம் எ ன் ப து எ ன் ன சீ ர்
Ver también
- TSCII (código de escritura tamil para el intercambio de información)
- AnyTaFont2UTF8 Un proyecto de código abierto para todos los caracteres Tamil Encoding / Font Mapping.
Referencias
- ^ a b c d Informe sobre las recomendaciones finales del grupo de trabajo sobre TACE16
- ^ a b Documento de licitación del gobierno de Tamil Nadu para el desarrollo de fuentes Tamil y controlador de teclado Tamil para codificaciones de 16 bits (Unicode y TACE16)
- ^ a b http://www.tamilvu.org/tkbd/index.htm
- ^ a b Orden del gobierno de Tamil Nadu (GO), controladores de teclado y fuentes
- ^ https://github.com/arcturusannamalai/open-tamil open-tamil
- ^ https://ezhillang.wordpress.com/2014/01/26/open-tamil-text-processing-%E0%AE%89%E0%AE%B0%E0%AF%88-%E0%AE%AA % E0% AE% 95% E0% AF% 81% E0% AE% AA% E0% AF% 8D% E0% AE% AA% E0% AE% BE% E0% AE% AF% E0% AF% 8D% E0 % AE% B5% E0% AF% 81 / tamil.utf8.get_letters
- ^ https://ezhillang.wordpress.com/2014/01/26/open-tamil-text-processing-%E0%AE%89%E0%AE%B0%E0%AF%88-%E0%AE%AA % E0% AE% 95% E0% AF% 81% E0% AE% AA% E0% AF% 8D% E0% AE% AA% E0% AE% BE% E0% AE% AF% E0% AF% 8D% E0 % AE% B5% E0% AF% 81 /
- ^ https://www.unicode.org/L2/L2012/12033-tamil-presentation.pdf
- ^ http://unicode.org/alloc/nonapprovals.html
- ^ https://pypi.org/project/Open-Tamil/ proyecto open-tamil