Google Research acaba de lanzar un proyecto de código abierto que podría ser de interés si le interesa el procesamiento del lenguaje natural. SLING es una combinación de redes neuronales recurrentes y análisis basados en marcos.
El análisis de lenguaje natural es un tema importante. Puedes obtener significado de la estructura y el análisis es cómo obtienes estructura. Es importante en el procesamiento de texto y voz. Si tiene alguna esperanza de que Siri, Cortana o Alexa vayan a mejorar, entonces necesita tener una mejor comprensión del lenguaje natural, no solo los sistemas de ranura y relleno actualmente en uso.
Google, en particular, necesita encontrar formas de extraer un mejor significado del texto porque ¿de qué otro modo van a mejorar sus resultados de búsqueda? Es razonable especular que Google está haciendo mucho más de lo que está preparado para hablar en el área de la comprensión del lenguaje.
Los investigadores involucrados enfatizan que este es un sistema experimental y, a menos que vayan a poner mucho trabajo en ello, dudo que conduzca a algo utilizable. El enfoque es usar un gráfico de marco semántico, un diagrama que resume el significado de una oración. Sus nodos son conceptos y sus bordes son relaciones. El equipo de Google da un buen ejemplo en su publicación de blog:
Puede ver que el gráfico muestra que una predicción tiene dos conceptos relacionados, la persona que hace la predicción y el evento predicho.
Lo diferente de SLING es que usa una red neuronal recurrente para construir el gráfico:
SLING entrena una red neuronal recurrente optimizando para los marcos semánticos de interés. Las representaciones aprendidas internas en las capas ocultas de la red reemplazan las combinaciones de funciones hechas a mano y las representaciones intermedias en los sistemas interconectados. Internamente, SLING utiliza una arquitectura codificador-decodificador donde cada palabra de entrada se codifica en un vector utilizando características léxicas simples como la palabra cruda, su sufijo (s), puntuación etc. El decodificador usa esa representación, junto con características recurrentes de su propia historia , para calcular una secuencia de transiciones que actualicen el gráfico de cuadros para obtener la representación semántica del cuadro deseado de la oración de entrada. SLING entrena su modelo usando TensorFlow y DRAGNN.
Puedes encontrar SLING en Github. Está escrito en C y viene con un modelo preformado y algunos datos.