En el área del procesamiento del lenguaje natural es muy importante tener colecciones de datos (típicamente documentos) etiquetado indicando qué elementos aparecen en ellos. Es decir, tener documentos en que se describa, de forma que lo pueda entender una máquina, ciertos aspectos que aparecen en el texto. Por supuesto, estas etiquetas o anotaciones dependerán de la tarea a la que estará destinado dicho corpus. Por ejemplo, si tengo que construir un sistema que automáticamente sepa clasificar mi correo como spam, debo proporcionar a mi cliente de correo una muestra de correos normales y otra de spam indicándole cuándo el correo es bueno o es basura. Si lo que me interesa es detectar los verbos, predicados o sustantivos, tendré que tener un texto que ya estén marcados estos elementos para que un sistema de aprendizaje automático, a partir de ciertas propiedades del texto (como las propias palabras o su orden), pueda aprender a discernir cuando una palabra es un verbo, un artículo o, incluso, un sintagma nominal.

Pantallazo del Teamware¹
El principal problema de estos corpus anotados es que requieren un enorme trabajo manual para su construcción. Por ejemplo, para construir un sistema de análisis de sentimiento como son nuestros sistemas GPLSI Social Observer o GPLSI EmotiReview, fue necesario que muchos miembros de nuestro grupo etiquetaran 6000 mensajes realizados en Twitter. Es por eso una labor muy tediosa y mecánica que a nadie le gusta realizar. Por lo tanto, es muy importante que hayan mecanismos o sistemas que faciliten esta labor.

Arquitectura del Teamware¹
Entre estos sistemas de anotación el Teamware es una aplicación web para el etiquetado colaborativo de corpus de propósito general que incorpora una multitud de características muy interesantes y que es uno de los mejores y más ambiciosos sistemas de anotación que yo haya analizado hasta el momento.
Se basa en el framework de desarrollo de GATE y entre sus principales características son:
-
soporta diferentes roles de usuario (anotador, editor, administrador) de forma que los usuarios con distintos roles realicen distintas tareas;
-
personalización de las interfaces de usuario mediante esquemas XML o, incluso, plugins que se adapten fácilmente a la tarea de anotación concreta;
-
permite definir nuevos flujos de trabajo (workflow) colaborativo de tal manera que se pueda asignar ciertos protocolos de actuación para cada uno de los roles en el todo el proceso de anotado;
-
almacenamiento remoto e, incluso, distribuido pero eficiente;
-
una preanotación automática, es decir, permite ejecutar sistemas parcialmente ya entrenados previamente para que el anotador sólo tenga que confirmar o eliminar las anotaciones automáticas y así ahorrar mucho trabajo;
-
calcula automáticamente factores de calidad del corpus como el Inter-Annotator Agreement (IAA) que nos indica cuándo una anotación tiene la suficiente calidad para utilizarlo en sistemas reales;
-
mecanismos de entrenamiento de los anotadores pues, aunque no lo parezca, una anotación de un corpus no es una tarea trivial y requiere un entrenamiento previo, según (Snow et al. 2008), el resultado de anotación de 10 anotadores no preparados equivale, en calidad, a un experto anotador y por lo tanto un entrenamiento previo puede reducir enormemente esta proporción;
-
comunicación entre los distintos usuarios y roles, por ejemplo, para que un anotador pregunte sus dudas al editor, mediante un chat;
-
definir máximos de anotación y evitar que algunos anotadores etiqueten más de lo que deben;
-
anotación a distintos niveles tanto a nivel de documento (clasificadores), palabra (entidades nombradas, POS, tags), relaciones (coorreferencias), árboles (sintácticos, semánticos), ontologías, etc.;
-
mecanismos de consenso entre distintas anotaciones del mismo documento para que, por ejemplo, un editor experto pueda decidir, cuando qué anotación es la más precisa;
-
anotación concurrente que permita que varios anotadores trabajen sobre el mismo documento sin que se produzcan problemas;
-
obtener estadísticas sobre el proceso global de anotación y administrar o bloquear corpus;
-
generar informes de los proyectos de anotación;
-
diversos formatos de documentos tanto de entrada como de salida;
-
y un buscador basado en palabras claves para localizar partes de un corpus anotado.
Referencias
R. Snow, B. O'Connor, D. Jurafsky, y A. Y. NG. 2008. Cheap and fast - but is it good?: Evaluating non-expert annotations for natural language tasks. In EMNLP'08.
Notas
¹ Imágenes obtenidas de http://gate.ac.uk/releases/gate-7.0-build4195-ALL/doc/tao/splitch23.html