La comprensión del lenguaje natural ( NLU ) o la interpretación del lenguaje natural ( NLI ) [1] es un subconjunto del procesamiento del lenguaje natural en inteligencia artificial que se ocupa de la comprensión de la lectura automática . La comprensión del lenguaje natural se considera un problema difícil para la IA . [2]
Existe un considerable interés comercial en este campo debido a su aplicación al razonamiento automatizado , [3] traducción automática , [4] respuesta a preguntas , [5] recopilación de noticias, categorización de texto , activación por voz , archivo y análisis de contenido a gran escala. .
El programa STUDENT , escrito en 1964 por Daniel Bobrow para su tesis doctoral en el MIT , es uno de los primeros intentos conocidos de comprensión del lenguaje natural por parte de una computadora. [6] [7] [8] [9] [10] Ocho años después de que John McCarthy acuñara el término inteligencia artificial , la disertación de Bobrow (titulada Entrada de lenguaje natural para un sistema de resolución de problemas informáticos ) mostró cómo una computadora podía comprender entradas simples de lenguaje natural. Resolver problemas escritos de álgebra.
Un año después, en 1965, Joseph Weizenbaum en el MIT escribió ELIZA , un programa interactivo que mantenía un diálogo en inglés sobre cualquier tema, siendo el más popular la psicoterapia. ELIZA trabajó mediante un simple análisis y sustitución de palabras clave en frases predefinidas y Weizenbaum evitó el problema de darle al programa una base de datos de conocimiento del mundo real o un léxico rico . Sin embargo, ELIZA ganó una popularidad sorprendente como proyecto de juguete y puede verse como un precursor muy temprano de los sistemas comerciales actuales, como los utilizados por Ask.com . [11]
En 1969, Roger Schank de la Universidad de Stanford introdujo la teoría de la dependencia conceptual para la comprensión del lenguaje natural. [12] Este modelo, parcialmente influenciado por el trabajo de Sydney Lamb , fue ampliamente utilizado por los estudiantes de Schank en la Universidad de Yale , como Robert Wilensky , Wendy Lehnert y Janet Kolodner .
En 1970, William A. Woods introdujo la red de transición aumentada (ATN) para representar la entrada del lenguaje natural. [13] En lugar de reglas de estructura de frases, las ATN utilizaron un conjunto equivalente de autómatas de estados finitos que se llamaban recursivamente. Los ATN y su formato más general llamado "ATN generalizados" continuaron utilizándose durante varios años.
En 1971, Terry Winograd terminó de escribir SHRDLU para su tesis doctoral en el MIT. SHRDLU podía entender frases sencillas en inglés en un mundo restringido de bloques infantiles para dirigir un brazo robótico para mover objetos. La demostración exitosa de SHRDLU proporcionó un impulso significativo para continuar la investigación en este campo. [14] [15] Winograd continuó siendo una gran influencia en este campo con la publicación de su libro El lenguaje como proceso cognitivo . [16] En Stanford, Winograd asesoraría más tarde a Larry Page , cofundador de Google .
En las décadas de 1970 y 1980, el grupo de procesamiento del lenguaje natural de SRI International continuó la investigación y el desarrollo en este campo. Se llevaron a cabo una serie de esfuerzos comerciales basados en la investigación, por ejemplo , en 1982 Gary Hendrix formó Symantec Corporation originalmente como una empresa para desarrollar una interfaz de lenguaje natural para consultas de bases de datos en computadoras personales. Sin embargo, con la llegada de las interfaces gráficas de usuario controladas por mouse , Symantec cambió de dirección. Casi al mismo tiempo se iniciaron otros esfuerzos comerciales, por ejemplo , Larry R. Harris en Artificial Intelligence Corporation y Roger Schank y sus estudiantes en Cognitive Systems Corp. [17] [18] En 1983, Michael Dyer desarrolló el sistema BORIS. en Yale que tenía similitudes con el trabajo de Roger Schank y WG Lehnert. [19]
El tercer milenio vio la introducción de sistemas que utilizaban el aprendizaje automático para la clasificación de textos, como IBM Watson . Sin embargo, los expertos debaten hasta qué punto estos sistemas demuestran "comprensión": por ejemplo , según John Searle , Watson ni siquiera entendió las preguntas. [20]
John Ball , científico cognitivo e inventor de la teoría de Patom , apoya esta valoración. El procesamiento del lenguaje natural ha hecho avances en aplicaciones que respaldan la productividad humana en los servicios y el comercio electrónico, pero esto ha sido posible en gran medida al reducir el alcance de la aplicación. Hay miles de formas de solicitar algo en un lenguaje humano que aún desafía el procesamiento convencional del lenguaje natural. [ cita necesaria ] Según Wibe Wagemans, "Tener una conversación significativa con las máquinas solo es posible cuando relacionamos cada palabra con el significado correcto en función de los significados de las otras palabras en la oración, tal como lo hace un niño de 3 años. sin conjeturas." [21]
El término general "comprensión del lenguaje natural" se puede aplicar a un conjunto diverso de aplicaciones informáticas, que van desde tareas pequeñas y relativamente simples, como comandos breves emitidos a robots , hasta tareas muy complejas, como la comprensión completa de artículos periodísticos o pasajes de poesía. . Muchas aplicaciones del mundo real se encuentran entre los dos extremos; por ejemplo, la clasificación de texto para el análisis automático de correos electrónicos y su enrutamiento a un departamento adecuado en una corporación no requiere una comprensión profunda del texto, [22] pero debe abordar con un vocabulario mucho más amplio y una sintaxis más diversa que la gestión de consultas simples a tablas de bases de datos con esquemas fijos.
A lo largo de los años , se han llevado a cabo varios intentos de procesar el lenguaje natural o oraciones similares al inglés presentadas a las computadoras con diversos grados de complejidad. Algunos intentos no han dado como resultado sistemas con una comprensión profunda, pero han ayudado a la usabilidad general del sistema. Por ejemplo, Wayne Ratliff desarrolló originalmente el programa Vulcan con una sintaxis similar al inglés para imitar la computadora de habla inglesa en Star Trek . Más tarde, Vulcan se convirtió en el sistema dBase cuya sintaxis fácil de usar lanzó efectivamente la industria de bases de datos de computadoras personales. [23] [24] Sin embargo, los sistemas con una sintaxis fácil de usar o similar al inglés son bastante distintos de los sistemas que utilizan un léxico rico e incluyen una representación interna (a menudo como lógica de primer orden ) de la semántica de las oraciones del lenguaje natural.
Por lo tanto, la amplitud y profundidad de la "comprensión" que busca un sistema determinan tanto la complejidad del sistema (y los desafíos implícitos) como los tipos de aplicaciones que puede abordar. La "amplitud" de un sistema se mide por el tamaño de su vocabulario y gramática. La "profundidad" se mide por el grado en que su comprensión se aproxima a la de un hablante nativo con fluidez. En el caso más limitado y superficial, los intérpretes de comandos similares al inglés requieren una complejidad mínima, pero tienen una pequeña gama de aplicaciones. Los sistemas estrechos pero profundos exploran y modelan mecanismos de comprensión, [25] pero todavía tienen una aplicación limitada. Los sistemas que intentan comprender el contenido de un documento, como un comunicado de prensa, más allá de la simple coincidencia de palabras clave y juzgar su idoneidad para un usuario, son más amplios y requieren una complejidad significativa, [26] pero aún son algo superficiales. Los sistemas que son a la vez muy amplios y muy profundos están más allá del estado actual de la técnica.
Independientemente del enfoque utilizado, la mayoría de los sistemas de comprensión del lenguaje natural comparten algunos componentes comunes. El sistema necesita un léxico del idioma y un analizador sintáctico y reglas gramaticales para dividir las oraciones en una representación interna. La construcción de un léxico rico con una ontología adecuada requiere un esfuerzo significativo; por ejemplo , el léxico de Wordnet requirió muchos años-persona de esfuerzo. [27]
El sistema también necesita teoría de la semántica para guiar la comprensión. Las capacidades de interpretación de un sistema de comprensión del lenguaje dependen de la teoría semántica que utiliza. Las teorías semánticas del lenguaje en competencia tienen compensaciones específicas en su idoneidad como base de la interpretación semántica automatizada por computadora. [28] Estos van desde la semántica ingenua o el análisis semántico estocástico hasta el uso de la pragmática para derivar significado del contexto. [29] [30] [31] Los analizadores semánticos convierten textos en lenguaje natural en representaciones formales de significado. [32]
Las aplicaciones avanzadas de comprensión del lenguaje natural también intentan incorporar la inferencia lógica dentro de su marco. Esto generalmente se logra mapeando el significado derivado en un conjunto de afirmaciones en lógica de predicados y luego usando la deducción lógica para llegar a conclusiones. Por lo tanto, los sistemas basados en lenguajes funcionales como Lisp necesitan incluir un subsistema para representar aserciones lógicas, mientras que los sistemas orientados a la lógica, como los que usan el lenguaje Prolog, generalmente dependen de una extensión del marco de representación lógica incorporado. [33] [34]
La gestión del contexto en la comprensión del lenguaje natural puede presentar desafíos especiales. Una gran variedad de ejemplos y contraejemplos han dado como resultado múltiples enfoques para el modelado formal del contexto, cada uno con fortalezas y debilidades específicas. [35] [36]