La comprensión del lenguaje natural ( NLU ) o 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 lectora de las máquinas . La NLU se ha considerado 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 NLU 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 tesis de Bobrow (titulada Entrada de lenguaje natural para un sistema de resolución de problemas de computadora ) mostró cómo una computadora podía entender una entrada de lenguaje natural simple para resolver problemas de álgebra.
Un año después, en 1965, Joseph Weizenbaum, del 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 funcionaba mediante un simple análisis y sustitución de palabras clave en frases predefinidas y Weizenbaum eludió el problema de dar al programa una base de datos de conocimiento del mundo real o un rico léxico . Sin embargo, ELIZA ganó una sorprendente popularidad como proyecto de juguete y puede considerarse un precursor muy temprano de los sistemas comerciales actuales, como los utilizados por Ask.com . [11]
En 1969, Roger Schank en la Universidad de Stanford introdujo la teoría de dependencia conceptual para NLU. [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, por sus siglas en inglés) para representar la entrada en lenguaje natural. [13] En lugar de reglas de estructura de frase, las ATN utilizaban un conjunto equivalente de autómatas de estados finitos que se invocaban de forma recursiva. Las ATN y su formato más general, denominado "ATN generalizadas", siguieron 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 oraciones simples en inglés en un mundo restringido de bloques de niños para dirigir un brazo robótico para mover elementos. La demostración exitosa de SHRDLU proporcionó un impulso significativo para la investigación continua en el campo. [14] [15] Winograd continuó siendo una gran influencia en el campo con la publicación de su libro Language as a Cognitive Process . [16] En Stanford, Winograd asesoraría más tarde a Larry Page , quien cofundó Google .
En los años 1970 y 1980, el grupo de procesamiento de lenguaje natural en SRI International continuó la investigación y el desarrollo en el campo. Se llevaron a cabo varios 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 el advenimiento de las interfaces gráficas de usuario controladas por mouse , Symantec cambió de dirección. Varios otros esfuerzos comerciales se iniciaron en la misma época, 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]
En el tercer milenio se introdujeron sistemas que utilizaban el aprendizaje automático para la clasificación de textos, como el IBM Watson . Sin embargo, los expertos debaten hasta qué punto estos sistemas demuestran "comprensión": por ejemplo , según John Searle , Watson ni siquiera entendía las preguntas. [20]
John Ball , científico cognitivo e inventor de la teoría de Patom , apoya esta afirmación. El procesamiento del lenguaje natural ha logrado avances en aplicaciones que apoyan la productividad humana en los servicios y el comercio electrónico, pero esto ha sido posible en gran medida gracias a la limitación del alcance de la aplicación. Hay miles de formas de solicitar algo en un lenguaje humano que aún desafía el procesamiento del lenguaje natural convencional. [ cita requerida ] Según Wibe Wagemans, "Mantener una conversación significativa con las máquinas solo es posible cuando hacemos coincidir cada palabra con el significado correcto en función de los significados de las otras palabras de la oración, tal como lo hace un niño de 3 años sin adivinar". [21]
El término genérico "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 altamente complejas, como la comprensión total de artículos de periódicos 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 necesita lidiar 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 lenguaje natural o frases similares al inglés presentadas a computadoras con distintos 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 angloparlante de Star Trek . Vulcan más tarde 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 usan un léxico rico e incluyen una representación interna (a menudo como lógica de primer orden ) de la semántica de oraciones de 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 con los que puede lidiar. 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 fluido. En el nivel más estrecho y superficial, los intérpretes de comandos similares al inglés requieren una complejidad mínima, pero tienen una gama pequeña de aplicaciones. Los sistemas estrechos pero profundos exploran y modelan mecanismos de comprensión, [25] pero aún 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 NLU comparten algunos componentes comunes. El sistema necesita un léxico del lenguaje y un analizador sintáctico y reglas gramaticales para descomponer 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 una teoría semántica que oriente la comprensión. Las capacidades de interpretación de un sistema de comprensión del lenguaje dependen de la teoría semántica que utilice. Las teorías semánticas del lenguaje que compiten entre sí tienen ventajas y desventajas específicas en cuanto a su idoneidad como base de la interpretación semántica automatizada por ordenador. [28] Estas teorías van desde la semántica ingenua o el análisis semántico estocástico hasta el uso de la pragmática para derivar el 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 NLU 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 afirmaciones lógicas, mientras que los sistemas orientados a la lógica como los que usan el lenguaje Prolog generalmente se basan en una extensión del marco de representación lógica incorporado. [33] [34]
La gestión del contexto en NLU puede presentar desafíos especiales. Una gran variedad de ejemplos y contraejemplos han dado lugar a múltiples enfoques para el modelado formal del contexto, cada uno con fortalezas y debilidades específicas. [35] [36]