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:
En mi último post hablaba de los sistemas de integración de recursos y herramientas que son útiles en para la investigación en tecnologías de la información presentando uno de los frameworks de integración de más auge: el UIMA. Hoy os voy a hablar de un sistema que utiliza otro conocido framework, el GATE, como base (del cuál hablaré próximamente) para realizar una integración basada en computación nube. Esta plataforma se llama GATECloud.
En el artículo titulado GATECloud.net: Cloud Infrastructure for Large-Scale, Open-Source Text Processing, publicado en las actas del AHM 2011, Tablan et al. nos explican brevemente, en un artículo corto de 3 páginas, las líneas generales de esta plataforma basada en la familia GATE de software, más concretamente en sus versiones servidoras GATE Teamware y GATE Mimir. Con estas plataformas servidoras montan un cluster de ordenadores en Amazon que nos permite definir Annotation Jobs y flujos de trabajos entre estos al puro estilo GATE. El usuario final simplemente tiene que definir estos flujos de trabajos y subir los documentos de entrada y el sistema ejecuta todo el proceso de forma paralela en el cluster consiguiendo tiempos muy reducidos de procesamiento. Finalmente, cuando el trabajo termina, GATECloud envía un email para que el usuario se descargue los archivos resultantes.
El principal problema de este artículo es su brevedad que no se centra en el detalle sino una visión global. Otras críticas es la única referencia bibliográfica a un artículo de los propios autores que, en mi opinión, no viene a colación.
En la investigación en el Procesamiento del Lenguaje Natural (PLN), y más generalmente en Tecnologías de la Información, se desarrollan herramientas y se construyen recursos muy diversos. Estas herramientas herramientas y recursos son generados por muy distintos grupos de investigación que utilizan diferentes tecnologías, plataformas, lenguajes de programación o formatos de representación. Durante bastante tiempo, en este área de investigación, se ha intentado crear plataformas, middlewares o frameworks que permitan integrar un gran conjunto de herramientas y recursos con el objetivo de poder reutilizarlos e integrarlos en otras aplicaciones y tecnologías. Uno de los más famosos intentos es el Unstructured Information Management Arquicture (UIMA), desarrollado inicialmente por IBM y, adoptado posteriormente por la fundación Apache.
UIMA (Ferrucci y Adam Lally, 2004) es un middleware y framework que, a parte de permitir la reutilización e integración de recursos y herramientas, permite una rápida transferencia de tecnología desde la investigación al producto final. Originalmente se desarrolló debido a la estructura de los equipos de investigación de IBM que estaban formados por grupos de 3 a 5 personas geológicamente dispersas que hacía muy difícil el desarrollo conjunto y la reutilización de tecnologías. Este middleware y framework de integración aporta la infraestructura necesaria para desarrollar lo que IBM llama Unstructured Information Management (UIM) aplicaciones, es decir, aplicaciones que gestionen información estructurada. Es por ello que UIMA se centra mucho (aunque no exclusivamente) en la captura, análisis y procesamiento de grandes volúmenes de información no estructurada como crawlers y buscadores de los cuales se extrae o se clasifica conocimiento.