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.

La arquitectura general de UIMA se divide en 4 partes que son: adquisición, análisis de la información no estructurada, acceso a la información estructurada y descubirimiento de componentes. La primera etapa de adquisición se basa en recolectar los documentos (que no tienen que ser sólo de texto, puede ser audio o video), por ejemplo web crawlers. Aunque implementando las interfaces adecuadas se puede obtener la información de muy diversas fuentes, no sólo de internet, como, por ejemplo, una colección de documentos en un formato determinado. En la segunda etapa se crean elementos de procesamiento de componentes llamados Text Analysis Engines (TAEs) que son estructuras recursivas que llevan a cabo diferentes etapas de análisis. Estos TAE se tienen sus análogos en los Processing Resources de la arquitectura GATE (Cunningham et al. 2000). El resultado de los TAEs es nueva información que se esctructura en un formato de representación llamado Common Analysis Structure (CAS). Este formato es multicapa, es decir, que no se etiqueta los propios documentos si no que se generan distintos archivos que hacen referencia a los elementos originales. De esta forma sólo requerimos cargar o analizar aquellos CAS que necesitemos en cada momento. Este formato multicapa es más flexibe que las marcas integradas en los documentos (Mardis y Burger, 2002). Los CAS tienen ciertas similitudes con las anotaciones de otras arquitecturas como TIPSTER (Grishman, 1996) o ATLAS (Laprun et al. 2002) de las que hablaremos en el futuro en este blog.

La etapa de acceso a la información estructurada, se encarga de obtener los CAS de forma eficiente para cada TAE utilizando búsqueda semánticas, la metainformación de los documentos y de la colección, y lógica de predicados en formato Knowledge Interchange Format (Generserrth y Fikes, 1992).

Con toda la información estructurada de la etapa anterior y los mecanismos de búsqueda semántica para acelerar el acceso a ella, se generan los motores de análisis que extraen nueva información. Estos motores se publican en un directorio de servicios que ofrece UIMA para su acceso a través de web services o para su integración embebida en las aplicaciones UIMA. Estos directorios incluyen interfaces orientadas a las personas que permiten que los desarrolladores naveguen o busquen los motores de análisis que requieran. Esto permite una validación rápida de ideas combinando componentes existentes y animando a su reutilización. Para facilitar esto todavía más, UIMA incorpora el Analysis Engine Assembler que se encarga de combinar los componentes existentes para agregar capacidad de análisis sin escribir código (únicamente mediante especificaciones declarativas) de forma aislada.

UIMA es una arquitectura, middleware y framework de desarrollo para clasificar, describir, desarrollar y combinar componentes de PLN en aplicaciones para el procesamiento de información no estructurada que ha tenido un auge en los últimos años permitiendo una gestión e integración más ágiles y completas de este tipo de aplicaciones.

Referencias

  • David Ferrucci y Adam Lally, 2004. UIMA: An Architectural Approach to Unstructured Information Processing in the Corporate Research Environment. Special issue of the Journal of Natural Language Engineering, num 10: pp 327-348. Cambridge University Press.
  • Scott Mardis y John Burger, 2002. Qanda and the Catalyst Architecture. AAAI Spring Symposium on Mining Answers from Text and Knowledge Bases.
  • Ralph Grishman, 1996. Tipster architecture design document version 2.2. Technical report, DARPA.
  • Hamish Cunningham, Kalina Bontcheva, Valentin Tablan y Yorick Wilks, 2000. Software Infraestructure for Language Resources: a Taxonomy of Previous Work and a Requirements Analysis. In Proceedings of the SEcond Conference on Language Resources Evaluation, Athens.
  • Christophe Laprun, Johnathan Fiscus, John Garofolo y Sylvain Pajot,  2002. A Practical Introduction to ATLAS. In Proceedings of the Third International Conference on Language Resources and Evaluation (LREC).
  • Michael R. Generserrth y Richard E. Fikes, 1992. Knowledge Interchange Format Version 3.0 Reference Manual. TEchnical report, Logic Group, Standford University, CA.

Últimas noticias

Noticias científicas