Skip to content

Motores de enriquecimiento semántico de contenidos

29 agosto, 2012

Hoy vamos a intentar poner un poco de orden sobre las herramientas lingüísticas y semánticas que están apareciendo en el incipiente mundo del Procesamiento de Lenguaje Natural (NLP). Sin embargo, no nos centraremos en las ramas encargadas de comprender íntegramente el texto de entrada (para traducirlo o interpretarlo), sino en el mecanismo habitual que se utiliza para procesar un determinado contenido y enriquecerlo con datos externos.

Ejemplo de enriquecimiento de contenidos en The Washington Post

Para llegar a conseguir este comportamiento final, aparentemente sencillo, existe una amplia amalgama de herramientas o motores disponibles, cada uno de ellos encargado de agrupar un conjunto de funcionalidades similares. En cada caso, trataremos de indicar dichas funcionalidades y algunas alternativas de software libre y comercial que las implementan.

Motores de preprocesado de textos

Preprocessing engines: son los primeros en enfrentarse al texto de entrada, y por tanto, les toca realizar el trabajo sucio de generar un modelo homogéneo a partir de la gran diversidad de formatos, idiomas y metadatos disponibles. En algunas ocasiones, sus responsabilidades se solapan con las de herramientas ETL. Sus principales funciones son:

  • Detectar el idioma del texto
  • Reconocer el encoding y content-type del texto
  • Extraer los metadatos a partir de los diferentes formatos
  • Convertir el texto a partir de diferentes formatos a un modelo estándar

Algunas soluciones de software libre que los implementan son Apache Tika, Metaxa Engine y Aperture Framework. Dentro de las comerciales, no podemos dejar de destacar a Autonomy, aunque también nos gustaría mencionar a alternativas más modestas como la finlandesa Connector Machinese.

Motores de reconocimiento de entidades con nombre (NER)

Named-Entity Recognition Engines: el reconocimiento de entidades con nombre consiste, como su propio nombre indica, en la detección de elementos con nombre propio dentro de un determinado texto, y su clasificación en categorías predefinidas, como personas, organizaciones, empresas, lugares, etc. La complejidad de este proceso se basa en que muchas entidades equivalentes pueden aparecer escritas de diferentes formas, por lo que es necesario contar con un conjunto de reglas semánticas avanzadas y un corpus contra el que cruzar la información para realizar desambiguaciones.

El reconocimiento de entidades con nombre se suele utilizar para hacer etiquetado automático de textos (por ejemplo, en las noticias de un diario digital) y como paso previo para el enriquecimiento semántico. El gran problema del NER es que el tratamiento de temas (topics) como prima de riesgo, o crisis eurozona es más complejo y requiere utilizar metainformación semántica.

Algunas reglas típicas de motores NER se pueden resumir en expresiones regulares como:

(N)ombre (A)pellido : Nombre / Apellido / N. Apellido / Nombre A. / N. A.
Ejemplo: Fernando Alonso: Fernando / Alonso / F. Alonso / Fernando A. / F. A.
(A)aa [de|del|la|los|las]? (B)bb [de|del|la|los|las]? (C)cc : ABC
Ejemplo: Organización de Naciones Unidas: ONU

Soluciones de software libre que implementan motores NER son, por ejemplo: Apache OpenNLP y Stanford NER (dirigido por el profesor Christopher Manning). Dentro de las soluciones comerciales cabe destacar, por ejemplo, Lingpipe NER, Daedalus Stilus NER, Connexor NER o Text Mining Engine. Por supuesto, en ese terreno también tiene cabida la omnipresente Autonomy. Finalmente, no podemos dejar de mencionar nuestra propia alternativa, Classora Autotagging, que además de entidades con nombre reconoce temas.

Motores de enriquecimiento semántico

Semantic Enhancement Engines: representan el eslabón más avanzado de desarrollo técnico, ya que requieren que se hayan llevado a cabo los procesos anteriores (preprocesado y NER) para finalmente cruzar los resultados con una base de conocimiento que les permita enriquecer los contenidos con datos adicionales procedentes de fuentes externas.

En este sentido, los motores de enriquecimiento semántico se subdividen en tres grupos principales:

  • Metadata Enhancement Engines: utilizan los contenidos externos para incrustar metadatos sobre el texto de entrada, como los microdatos de HTML5 o el etiquetado RDF. El objetivo de estas herramientas es múltiple: estructurar la información interna, posicionar mejor en buscadores, o añadir un determinado website al Linked-Data Cloud. La herramienta mundialmente más conocida para este fin es Open Calais de la agencia Thomson-Reuters, que proporciona un API abierto.
  • Content Discovery Platforms: manejan datos internos y externos para sugerir contenidos relacionados al usuario. Los datos internos suelen ser la propia navegación del usuario, y los externos suelen ser perfiles de usuarios similares. Además, estas herramientas manejan unos grafos de navegación muy potentes, construidos mediante la agregación del comportamiento de millones de usuarios en Internet. Los contenidos ofertados pueden proceder del mismo website, o bien de otros sitios afines. Las empresas líderes en este campo son Outbrain y nRelate, si bien existen múltiples alternativas como Orca, Pinevio o Cxense.
  • Content Enhancement Engines: utilizan el cruce con las bases de conocimiento para complementar el texto de entrada con contenidos externos relevantes. Estos contenidos pueden ser de naturaleza muy variada, desde definiciones enciclopédicas a imágenes, vídeos o componentes de redes sociales. Este tipo de herramientas están entre las últimas tendencias de Internet. No hay más que ver el fulminante éxito de Google Knowledge Graph, que enriquece semánticamente la búsquedas en Google.

    Entre las soluciones de software libre para los Content Enhancement Engines cabe destacar Apache Stanbol, que también da soporte a otros tipos motores para procesamiento de textos y Apache Jena, orientado a construir aplicaciones semánticas. En cuanto a las alternativas comerciales, cabe destacar soluciones como Zemanta (para enriquecer blogs con contenidos externos desde el panel de administración), Apture (comprada por Google, que enriquecía cualquier web desde dentro con un simple javascript, o desde fuera como plugin para el navegador). Y por supuesto, en este punto cabe destacar Classora Media Support, nuestra alternativa comercial y –con humildad– la herramienta más avanzada en muchos sentidos.

Todos estos motores están diseñados para poder ser integrados en plataformas CMS. Como ya hemos comentado en ocasiones anteriores, los motores de enriquecimiento semántico se están convirtiendo en una de las principales tendencias en CMS y medios digitales. Su objetivo no es otro que dar un paso más sobre el tratamiento tradicional de los contenidos, ofreciendo un evidente valor añadido al usuario.

2 comentarios leave one →
  1. ebaste permalink
    29 agosto, 2012 7:13 pm

    Entradas que son tratados! Enhorabuena por el trabajo y ahoa a digerirlo poco a poco.

    Saludos molineros y muchos ánimos!

    Eduardo

    • 30 agosto, 2012 10:17 am

      Muchas gracias por tus comentarios Eduardo. Como siempre, estás ahí para animar 😉

      Un fuerte abrazo!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s