Ad verba per numeros
En estos momentos varios alumnos están trabajando en el proyecto "Desarrollo de un servicio web REST para la identificación del idioma de un documento aplicando la técnica blindLight". La idea básica consiste en (1) recibir un texto escrito en un idioma a identificar, (2) convertirlo en un vector de n-gramas y pesos tal y como prescribe la técnica, (3) compararlo con una serie de vectores correspondientes a textos cuya codificación e idioma son conocidos y (4) asignar como idioma aquel cuyo parecido (según blindLight) sea mayor.Como es habitual en mis proyectos cada alumno se enfrenta al trabajo desde un ángulo diferente. Así, hay quien va a tratar de identificar el idioma utilizando una única muestra por idioma que será la misma para todos (p.ej. la Declaración Universal de los Derechos Humanos); otros utilizarán varias muestras que deberían ser homogéneas y comparables (p.ej. textos marxistas) y otros utilizarán para cada idioma los textos que deseen sin importar cantidad o tema. La cuestión que se plantea entonces el alumno es qué tareas debe realizar y en qué orden. Esta entrada pretende arrojar algo de luz sobre el tema planteando una "hoja de ruta" que se concretará para el último caso (textos variopintos).Tarea 1: Elaborar la lista de idiomas a identificar, para cada idioma determinar la codificación (o codificaciones) más habituales (véase el wiki). A partir de estos datos elaborar la lista de pares (idioma, codificación) que debe soportar el servicio web.Tarea 2: Localizar para cada idioma textos diversos procurando que la cantidad de texto (tanto en número de documentos como de caracteres) para cada idioma sea similar. Sitios web oficiales (Naciones Unidas, Unión Europea, etc.), proveedores de noticias (BBC, Reuters, etc.) o la Wikipedia pueden ser fuentes interesantes de material.Tarea 3: Cada documento se habrá encontrado en una única codificación, muy probablemente UTF-8, sin embargo, querremos que el servicio identifique para un idioma varias codificaciones; en consecuencia, es necesario convertir dicho documento al resto de codificaciones necesarias (p.ej. un texto japonés en UTF-8 habría que guardarlo también con codificación Shift-JIS). Obviamente, es necesaria una cierta organización en los nombres de los archivos por lo que se recomienda utilizar etiquetas estandarizadas (consúltese [1], [2] o [3]); así,
Back Next
zh-Hans.000000.utf8.txt
identificaría al documento 000000 de los correspondientes a chino simplicado codificado en UTF-8.Tarea 4: Documentar en el wiki y en el blog el trabajo realizado, colgar para su descarga la colección según se vaya elaborando y solicitar al tutor la revisión de la misma.(Episodio II)Back Next