Llegamos a ustedes gracias a:



Reportajes y análisis

Empiece a trabajar con el procesamiento del lenguaje natural

[03/05/2019] La mayoría de las aplicaciones actuales todavía funcionan en el mundo del procesamiento de datos de fuentes estructuradas y semiestructuradas. Se conectan a bases de datos SQL para consultar o presentar información de fuentes de datos JSON o XML. Muchas aplicaciones siguen evitando la complicación de analizar y extraer el conocimiento de fuentes no estructuradas: campos de texto abierto, editores de texto enriquecido, tipos de datos CLOB (objetos grandes de caracteres) de bases de datos, flujos de noticias de medios sociales, y documentos completos de herramientas como Microsoft Word, Google Docs y Adobe Acrobat.

Pero el mundo de la información está en gran parte desestructurado. La gente ingresa, busca y administra información en una gran variedad de herramientas y formatos. Las aplicaciones modernas van más allá de simplemente almacenar y recuperar información no estructurada, e incorporan elementos del procesamiento del lenguaje natural (PLN, por sus siglas en inglés) para mejorar la experiencia del usuario, administrar información compleja, habilitar diálogos de chatbots y realizar analítica de texto.

¿Qué es el procesamiento del lenguaje natural (PLN)?

Los motores de PLN están diseñados para extraer datos, información, conocimientos y sentimientos de bloques de texto y documentos. A menudo utilizan una combinación de tecnologías de análisis, estructuras de datos de conocimiento, y algoritmos de aprendizaje automático para extraer y presentar información en formatos comprensibles para las personas y las aplicaciones.

Los motores de PLN suelen tener los siguientes componentes técnicos:

  • API e interfaces de almacenamiento de datos para facilitar la conexión a las fuentes de datos y agregar información para su análisis.
  • Parsers de archivos que extraen texto, metadatos y otra información contextual de diferentes tipos de archivos y formatos de almacenamiento de documentos.
  • Parsers de documentos que descomponen los documentos en unidades más atómicas, que incluyen secciones, párrafos, oraciones, frases y palabras.
  • Herramientas de reconocimiento de patrones, como un parser de expresiones regulares para identificar patrones como fechas, monedas, números de teléfono y direcciones.
  • Diccionarios y otras herramientas de almacenamiento de conocimiento que pueden ayudar a los motores de PLN a identificar entidades como nombres, lugares y productos.
  • Herramientas y algoritmos de aprendizaje automático para ayudar en la creación de entidades, temas y términos específicos del dominio.
  • Funciones de análisis semántico y de otro tipo que proporcionan un análisis más profundo. ¿El párrafo es positivo, negativo o neutral sobre el tema? ¿El párrafo se encuentra adyacente a una fotografía que proporciona un contexto adicional? ¿Se encontró el documento en una carpeta o contiene enlaces a otros documentos que pueden proporcionar un contexto adicional? ¿Qué se sabe sobre el autor del documento y cuándo se redactó? Para proporcionar contexto adicional.

La combinación de estos componentes permite a los motores de PLN proporcionar un resumen robusto de la información contenida en un documento. El resumen puede ser directamente útil para los usuarios, especialmente cuando se trata de documentos simples que cubren uno o relativamente pocos conceptos. Por ejemplo, un motor de PLN que procesa artículos de noticias actuales puede presentar quién, cuándo y dónde un artículo trata sobre el usuario. Esto también es útil para tecnologías downstream como los motores de búsqueda, chatbots y herramientas de analítica que pueden trabajar más fácilmente con información estructurada resumida a partir de documentos.

El tamaño y la complejidad del texto impulsan las decisiones de diseño

Mientras que la mayoría de los motores de PLN cuentan con algunos de estos componentes tecnológicos básicos, el nivel de sofisticación para manejar muchas fuentes y tipos de contenido varía significativamente.

Los motores más simples se concentran en documentos y formatos pequeños. Considere un cuadro de consulta del motor de búsqueda que solo analiza palabras, frases y términos booleanos cortos. Este motor busca separar palabras, identificar frases y analizar operadores lógicos básicos para que se le puedan presentar una o más consultas de nivel inferior al motor de búsqueda.

En los motores de búsqueda más avanzados, el significado e interpretación de la consulta son útiles para determinar mejor el contexto. Por ejemplo, una búsqueda con la palabra clave "jaguar" podría estar dirigida al animal, al fabricante de automóviles, al equipo de fútbol americano de la NFL, o posiblemente otras referencias que podrían reducirse utilizando cosas mencionadas por el usuario.

Los textos de chatbots son similares ya que a menudo trabajan con frases y oraciones cortas. Pero, mientras las búsquedas tienden a estar llenas de temas y entidades (es decir, sustantivos); para los chatbots, los textos suelen ser una mezcla de sustantivos, verbos y sentimientos. Por ejemplo, "Tengo problemas para restablecer mi contraseña" indica el servicio solicitado (inicio de sesión), la acción solicitada (restablecimiento de contraseña) y el sentimiento (negativo) que se debe usar para procesar la solicitud y formular una respuesta similar a la de un humano para el usuario.

Interpretar el contenido de las redes sociales, como tweets y actualizaciones en Facebook o LinkedIn, viene con muchos desafíos adicionales. Mientras más largo sea el formato de párrafo, implica que probablemente hay múltiples temas y entidades a las que se hace referencia. Además, comprender el sentimiento y la intención puede ser más importante que el tema; por ejemplo, saber que alguien pretende comprar un automóvil, es más importante para los anunciantes que saber que alguien hizo referencia a algún tipo de automóvil que alquiló en un viaje de negocios reciente.

Los motores que procesan formatos de documentos más grandes, requieren más análisis y sofisticación lingüística. Por ejemplo, si la intención del motor es analizar artículos de noticias de formato largo, debe poder separar oraciones, párrafos y secciones para representar mejor la información subyacente. El nivel de sofisticación requerido se vuelve más significativo con formatos de documentos más grandes, como documentos legales, financieros, médicos y de construcción de edificios.

Comprensión de las capacidades del motor del lenguaje natural

Los procesadores simples del lenguaje natural están diseñados para extraer entidades básicas mediante el análisis del texto en busca de nombres identificables que tengan pocas ambigüedades. Tenga en cuenta que la mayoría de los sitios de noticias tienen hipervínculos de personas, lugares y marcas, y le permiten hacer clic y revisar la información relevante sobre esa entidad.

La identificación de fechas, monedas, cuantificaciones o atributos descriptivos requiere más sofisticación para identificar las relaciones y los contextos. Por ejemplo, las fechas y las monedas extraídas de documentos legales y financieros a menudo están vinculadas al nombre de un evento, como un término del contrato o una métrica de rendimiento financiero. En los documentos de construcción, la identificación de colores de pintura con los tipos de habitaciones asociados, es útil para los fabricantes y contratistas. Para documentos médicos, encontrar el tipo de cáncer es más valioso si el médico sabe en qué parte del cuerpo fue encontrado.

Más allá de las entidades y patrones comunes, las plataformas de PLN difieren en la forma en que permiten la creación de conceptos, temas, entidades, frases, patrones y otros elementos personalizados para ser identificados en textos y documentos.

Validación de herramientas de aprendizaje en plataformas de PLN

Los motores de PLN vendidos por proveedores de nube pública como Amazon, Microsoft, Google e IBM compiten por la sofisticación de sus algoritmos, el rendimiento de las consultas de procesamiento, la profundidad de sus APIs, la versatilidad en el manejo de diferentes tipos de texto, documentos y archivos, y el precio por unidad, entre otros factores.

Pero lo más importante a considerar en la experimentación temprana es la simplicidad de usar las herramientas de la plataforma para capacitar entidades, temas y otros artefactos de información personalizados. ¿Qué herramientas facilitan la extracción de la información necesaria para los documentos y los casos de uso requeridos?

Aquí hay un breve resumen de las herramientas y capacidades que ofrecen los grandes proveedores de nube para configurar sus plataformas de PLN para extraer conocimientos específicos del dominio.

  • Amazon Comprehend cuenta con herramientas y APIs para presentar clasificadores y entidades personalizados mediante el envío de listas al motor.
  • Google Natural Language permite configurar conjuntos de datos que mapean texto en línea o referencias de archivos de texto a una o más etiquetas.
  • Microsoft Language Understanding (Luis) le permite describir intenciones (comprar, navegar), entidades, expresiones (cómo se expresa algo en el texto del documento), y patrones de lenguaje más complejos.
  • IBM Watson Natural Language Understanding ofrece más extracción de información utilizando hasta cinco niveles de jerarquías de categorías; conceptos que pueden ser abstraídos más allá de lo que se describe en el texto, tanto emoción como sentimiento, y las relaciones entre entidades.

La creación de bases de conocimiento de entidades y temas no es trivial, por lo que algunos de los proveedores de la nube están comenzando a construir los estándares o los iniciales. Por ejemplo, existe Amazon Comprehend Medical para extraer información médica, mientras que Microsoft ha creado dominios para lugares, eventos, música, clima y otras áreas comunes.

A partir de estos ejemplos, puede ver que existen formas diversas de capacitar a los motores de PLN en cuanto a entidades, temas e intenciones. Los enfoques simples comienzan con listas de palabras clave que se asignan a temas. Luego, los motores más sofisticados admiten algoritmos de aprendizaje que escanean documentos y presentan temas potenciales y frases asociadas a los usuarios para ver si deberían incluirse en los conjuntos de capacitación. Los motores sofisticados de Expert System, SmartLogic y Bitext utilizan herramientas de administración de taxonomía, y se integran con los almacenes de datos multimodelo y NoSQL como MarkLogic para que las coincidencias de conceptos realizadas en un documento se puedan usar con ontologías referenciadas para generar inferencias más sofisticadas y operativas.

Preparación para los experimentos de PLN

Antes de pasar a seleccionar tecnologías y hacer pruebas de concepto, es importante fundamentar cualquier experimentación de PLN con un alcance definido y criterios de éxito. Asegúrese de comprender el volumen de textos o documentos de capacitación, el nivel de detalle requerido de la extracción, los tipos de información requeridos, la calidad general requerida de la extracción y el rendimiento requerido en el procesamiento de nuevos textos. Los mejores experimentos se dan cuando el valor comercial puede ser entregado en requisitos modestos, y se puede agregar más sofisticación a través de un proceso ágil e iterativo.