integración de herramientas

Teamware: una aplicación web de anotación colaborativa

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

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

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.

GATECloud.net: la puerta de la nube

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.

UIMA: Middleware framework de integración de herramientas y recursos de PLN

Esquema de UIMAEn 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.

Últimas noticias

Noticias científicas