stringtranslate.com

Análisis semántico

El análisis semántico es la tarea de convertir un enunciado en lenguaje natural en una forma lógica : una representación de su significado comprensible por máquina. [1] Por lo tanto, el análisis semántico puede entenderse como la extracción del significado preciso de un enunciado. Las aplicaciones del análisis semántico incluyen la traducción automática , [2] la respuesta a preguntas , [1] [3] la inducción de ontologías , [4] el razonamiento automático , [5] y la generación de código . [6] [7] La ​​frase fue utilizada por primera vez en la década de 1970 por Yorick Wilks como base para los programas de traducción automática que trabajan solo con representaciones semánticas. [8] El análisis semántico es una de las tareas importantes en la lingüística computacional y el procesamiento del lenguaje natural.

Arquitectura del sistema de análisis semántico

El análisis semántico asigna el texto a representaciones de significados formales. Esto contrasta con el etiquetado de roles semánticos y otras formas de procesamiento semántico superficial, que no apuntan a producir significados formales completos. [9] En la visión artificial , el análisis semántico es un proceso de segmentación de objetos 3D. [10] [11]

Principales niveles de estructura lingüística

Historia y antecedentes

Las primeras investigaciones sobre el análisis semántico incluían la generación manual de gramática [12] , así como la utilización de lógica de programación aplicada. [13] En la década de 2000, la mayor parte del trabajo en esta área implicaba la creación/aprendizaje y uso de diferentes gramáticas y léxicos en tareas controladas, [14] [15] en particular gramáticas generales como SCFG. [16] Esto mejoró las gramáticas manuales principalmente porque aprovechaban la naturaleza sintáctica de la oración, pero todavía no podían cubrir suficiente variación y no eran lo suficientemente robustas para ser utilizadas en el mundo real. Sin embargo, tras el desarrollo de técnicas avanzadas de redes neuronales, especialmente el modelo Seq2Seq, [17] y la disponibilidad de potentes recursos computacionales, comenzó a surgir el análisis semántico neuronal. No solo proporcionaba resultados competitivos en los conjuntos de datos existentes, sino que también era robusto al ruido y no requería mucha supervisión e intervención manual. Sin embargo, la transición actual del análisis tradicional al análisis semántico neuronal no ha sido perfecta. El análisis semántico neuronal, a pesar de sus ventajas, sigue sin resolver el problema a un nivel más profundo. Los modelos neuronales como Seq2Seq tratan el problema del análisis como un problema de traducción secuencial y el modelo aprende patrones a modo de caja negra, lo que significa que no podemos predecir realmente si el modelo está resolviendo realmente el problema. Se han intentado esfuerzos intermedios y modificaciones al Seq2Seq para incorporar sintaxis y significado semántico, [18] [19] con una marcada mejora en los resultados, pero aún queda mucha ambigüedad por resolver.

Tipos

Análisis semántico superficial

El análisis semántico superficial se ocupa de identificar entidades en un enunciado y etiquetarlas con los roles que desempeñan. El análisis semántico superficial a veces se conoce como llenado de ranuras o análisis semántico de marcos, ya que su base teórica proviene de la semántica de marcos , en la que una palabra evoca un marco de conceptos y roles relacionados. Los sistemas de llenado de ranuras se utilizan ampliamente en asistentes virtuales junto con clasificadores de intenciones, que pueden verse como mecanismos para identificar el marco evocado por un enunciado. [20] [21] Las arquitecturas populares para el llenado de ranuras son en gran medida variantes de un modelo de codificador-decodificador, en el que dos redes neuronales recurrentes (RNN) se entrenan conjuntamente para codificar un enunciado en un vector y decodificar ese vector en una secuencia de etiquetas de ranura. [22] Este tipo de modelo se utiliza en el sistema de comprensión del lenguaje hablado de Amazon Alexa . [20] Este análisis sigue técnicas de aprendizaje no supervisado.

Análisis semántico profundo

El análisis semántico profundo, también conocido como análisis semántico compositivo, se ocupa de producir representaciones precisas del significado de enunciados que pueden contener una composicionalidad significativa . [23] Los analizadores semánticos superficiales pueden analizar enunciados como "muéstrame vuelos de Boston a Dallas" clasificando la intención como "enumerar vuelos" y llenando los espacios "origen" y "destino" con "Boston" y "Dallas", respectivamente. Sin embargo, el análisis semántico superficial no puede analizar enunciados compositivos arbitrarios, como "muéstrame vuelos desde Boston a cualquier lugar que tenga vuelos a Juneau". El análisis semántico profundo intenta analizar dichos enunciados, generalmente convirtiéndolos a un lenguaje de representación de significado formal. Hoy en día, el análisis semántico compositivo utiliza modelos de lenguaje grandes para resolver tareas de generalización compositiva artificial como SCAN. [24]

Análisis semántico neuronal

Los analizadores sintácticos semánticos desempeñan un papel crucial en los sistemas de comprensión del lenguaje natural porque transforman los enunciados del lenguaje natural en estructuras lógicas o programas ejecutables por máquina. El análisis sintáctico semántico, un campo de estudio bien establecido, se utiliza en asistentes de voz, respuestas a preguntas, seguimiento de instrucciones y generación de código. Dado que los enfoques neuronales han estado disponibles durante dos años, se han replanteado muchas de las presunciones que sustentaban el análisis sintáctico semántico, lo que ha llevado a un cambio sustancial en los modelos empleados para el análisis sintáctico semántico. Aunque la red neuronal semántica y el análisis sintáctico semántico neuronal [25] tratan ambos del procesamiento del lenguaje natural (PLN) y la semántica, no son lo mismo. Los modelos y formalismos ejecutables utilizados en la investigación del análisis sintáctico semántico tradicionalmente han dependido en gran medida de conceptos de la semántica formal en lingüística, como el cálculo λ producido por un analizador sintáctico CCG. Sin embargo, los trabajos recientes con analizadores semánticos codificadores-descodificadores neuronales hacen posible el desarrollo de formalismos más accesibles, como los lenguajes de programación convencionales y los modelos de estilo NMT que son considerablemente más accesibles para un público más amplio de NLP. Ofreceremos un resumen de los enfoques neuronales contemporáneos para el análisis semántico y analizaremos cómo han afectado a la comprensión del campo del análisis semántico.

Lenguajes de representación

Los primeros analizadores semánticos utilizaban lenguajes de representación de significados altamente específicos de dominio, [26] con sistemas posteriores que utilizaban lenguajes más extensibles como Prolog , [27] cálculo lambda , [28] semántica compositiva basada en dependencias lambda (λ-DCS), [29] SQL , [30] [31] Python , [32] Java , [33] el lenguaje de representación de significados de Alexa, [20] y la representación abstracta de significados (AMR). Algunos trabajos han utilizado representaciones de significados más exóticas, como gráficos de consultas, [34] gráficos semánticos, [35] o representaciones vectoriales. [36]

Modelos

La mayoría de los modelos modernos de análisis semántico profundo se basan en la definición de una gramática formal para un analizador de gráficos o en el uso de redes neuronales repetitivas para traducir directamente de un lenguaje natural a un lenguaje de representación de significados. Algunos ejemplos de sistemas basados ​​en gramáticas formales son el marco de análisis semántico de Cornell, [37] el análisis semántico con ejecución (SEMPRE) de la Universidad de Stanford , [3] y el analizador semántico basado en alineación de palabras (WASP). [38]

Conjuntos de datos

Los conjuntos de datos utilizados para entrenar modelos de análisis semántico estadístico se dividen en dos clases principales según la aplicación: los que se utilizan para responder preguntas a través de consultas de la base de conocimientos y los que se utilizan para la generación de código.

Pregunta y respuesta

Análisis semántico para responder preguntas en conversaciones

Un conjunto de datos estándar para responder preguntas a través del análisis semántico es el conjunto de datos del Sistema de información de viajes aéreos (ATIS), que contiene preguntas y comandos sobre los próximos vuelos, así como el SQL correspondiente. [30] Otro conjunto de datos de referencia es el conjunto de datos GeoQuery, que contiene preguntas sobre la geografía de los EE. UU. emparejadas con el Prolog correspondiente. [27] El conjunto de datos Overnight se utiliza para probar qué tan bien se adaptan los analizadores semánticos en múltiples dominios; contiene consultas en lenguaje natural sobre 8 dominios diferentes emparejados con las expresiones λ-DCS correspondientes. [39] Recientemente, el análisis semántico está ganando una popularidad significativa como resultado de nuevos trabajos de investigación y muchas grandes empresas, a saber , Google , Microsoft , Amazon , etc., están trabajando en esta área. Aquí se adjunta uno de los trabajos recientes de análisis semántico para responder preguntas. [40] En esta imagen se muestra una representación de una conversación de ejemplo de SPICE. La columna de la izquierda muestra los turnos de diálogo (T1-T3) con enunciados del usuario (U) y del sistema (S). La columna del medio muestra las anotaciones proporcionadas en CSQA. Los cuadros azules de la derecha muestran la secuencia de acciones (AS) y los análisis semánticos SPARQL correspondientes (SP).

Generación de código

Los conjuntos de datos populares para la generación de código incluyen dos conjuntos de datos de cartas coleccionables que vinculan el texto que aparece en las cartas con el código que representa con precisión esas cartas. Uno se construyó vinculando los textos de las cartas de Magic: The Gathering con fragmentos de código de Java; el otro vinculando los textos de las cartas de Hearthstone con fragmentos de código de Python. [33] El conjunto de datos IFTTT [41] utiliza un lenguaje específico de dominio especializado con comandos condicionales cortos. El conjunto de datos Django [42] combina fragmentos de código de Python con pseudocódigo en inglés y japonés que los describe. El conjunto de datos RoboCup [43] combina reglas en inglés con sus representaciones en un lenguaje específico de dominio que puede ser entendido por robots virtuales que juegan al fútbol.

Áreas de aplicación

En el campo del procesamiento del lenguaje natural (PLN), el análisis semántico se ocupa de transformar el lenguaje humano en un formato que sea más fácil de entender y comprender para las máquinas. Este método es útil en diversos contextos:

El análisis semántico tiene como objetivo mejorar la eficiencia y eficacia de diversas aplicaciones al cerrar la brecha entre el lenguaje humano y el procesamiento de las máquinas en cada uno de estos dominios.

Evaluación

El rendimiento de los analizadores semánticos también se mide utilizando métricas de evaluación estándar, como el análisis sintáctico. Esto se puede evaluar mediante la proporción de coincidencias exactas (porcentaje de oraciones que se analizaron perfectamente) y la precisión , la recuperación y la puntuación F1 calculadas en función de las asignaciones correctas de circunscripción o dependencia en el análisis en relación con ese número en los análisis de referencia y/o hipótesis. Estas últimas también se conocen como métricas PARSEVAL. [44]

Véase también

Referencias

  1. ^ ab Jia, Robin; Liang, Percy (11 de junio de 2016). "Recombinación de datos para análisis semántico neuronal". arXiv : 1606.03622 [cs.CL].
  2. ^ Andreas, Jacob, Andreas Vlachos y Stephen Clark. "Análisis semántico como traducción automática". Actas de la 51.ª reunión anual de la Asociación de Lingüística Computacional (volumen 2: artículos breves). Vol. 2. 2013.
  3. ^ ab Berant, Jonathan, et al. "Análisis semántico en Freebase a partir de pares pregunta-respuesta". EMNLP. Vol. 2. Núm. 5. 2013.
  4. ^ Poon, Hoifung y Pedro Domingos. "Inducción de ontología no supervisada a partir de texto". Actas de la 48.ª reunión anual de la Asociación de Lingüística Computacional. Asociación de Lingüística Computacional, 2010.
  5. ^ Kaliszyk, Cezary, Josef Urban y Jiří Vyskočil. "Automatización de la formalización mediante análisis estadístico y semántico de las matemáticas". Conferencia internacional sobre demostración interactiva de teoremas. Springer, Cham, 2017.
  6. ^ Rabinovich, Maxim; Stern, Mitchell; Klein, Dan (25 de abril de 2017). "Redes de sintaxis abstracta para generación de código y análisis semántico". arXiv : 1704.07535 [cs.CL].
  7. ^ Yin, Pengcheng; Neubig, Graham (5 de abril de 2017). "Un modelo neuronal sintáctico para la generación de código de propósito general". arXiv : 1704.01696 [cs.CL].
  8. ^ Wilks, Y. y Fass, D. (1992) La familia semántica de preferencias, en Computadoras y matemáticas con aplicaciones, volumen 23, números 2-5, páginas 205-221.
  9. ^ Hoifung Poon, Pedro Domingos Análisis semántico no supervisado, Actas de la Conferencia de 2009 sobre métodos empíricos en el procesamiento del lenguaje natural, 2009
  10. ^ Armeni, Iro, et al. "Análisis semántico 3D de espacios interiores a gran escala". Actas de la Conferencia IEEE sobre Visión artificial y reconocimiento de patrones. 2016.
  11. ^ Qi, Charles R., et al. "Pointnet: aprendizaje profundo en conjuntos de puntos para la clasificación y segmentación en 3D". Actas de la conferencia IEEE sobre visión artificial y reconocimiento de patrones. 2017.
  12. ^ Warren, DHD y Pereira, FCN et al. "Un sistema eficiente y fácilmente adaptable para interpretar consultas en lenguaje natural". Comput. Linguist., 8(3-4):110–122. 1982
  13. ^ Zelle, JM y Mooney, R. J et al. "Aprender a analizar consultas de bases de datos mediante programación lógica inductiva". Actas de la conferencia nacional sobre inteligencia artificial, páginas 1050-1055, 1996.
  14. ^ Zettlemoyer y Collins, et al. "Aprender a mapear oraciones a la forma lógica: clasificación estructurada con gramáticas categoriales probabilísticas". Actas de la 21.ª Conferencia sobre Incertidumbre en Inteligencia Artificial, UAI'05, páginas 658–666, 2005.
  15. ^ Kwiatkowski, T., Zettlemoyer, L., Goldwater, S. y Steedman, M. et al. "Inducción de gramáticas CCG probabilísticas a partir de la forma lógica con unificación de orden superior". Actas de la conferencia de 2010 sobre métodos empíricos en el procesamiento del lenguaje natural, páginas 1223–1233, 2010.
  16. ^ Wah Wong, Y. y J. Mooney, R. et al. "Aprendizaje de gramáticas sincrónicas para análisis semántico con cálculo lambda". Actas de la 45.ª reunión anual de la Asociación de Lingüística Computacional, páginas 960–967, 2007.
  17. ^ Dong, L. y Lapata, M. et al. "Del lenguaje a la forma lógica con atención neuronal..." Actas de la 54.ª Reunión Anual de la Asociación de Lingüística Computacional (volumen 1: artículos extensos), páginas 33-43, 2016.
  18. ^ Pengcheng Yin, Graham Neubig et al. "Un modelo neuronal sintáctico para la generación de código de propósito general". Actas de la 55.ª reunión anual de la Asociación de Lingüística Computacional (volumen 1: artículos extensos), páginas 440-450, 2017.
  19. ^ Shi, T., Tatwawadi, K., Chakrabarti, K., Mao, Y., Polozov, O. y Chen, W. et al. "A Incsql: Entrenamiento de analizadores incrementales de texto a SQL con oráculos no deterministas". Publicado por Microsoft Research, 2018.
  20. ^ abc Kumar, Anjishnu, et al. "Just ASK: Construyendo una arquitectura para la comprensión extensible del lenguaje hablado mediante autoservicio". Preimpresión de arXiv arXiv:1711.00549 (2017).
  21. ^ Bapna, Ankur, et al. "Hacia el análisis semántico de cuadros de disparo cero para el escalamiento de dominios". Preimpresión de arXiv arXiv:1707.02363 (2017).
  22. ^ Liu, Bing e Ian Lane. "Modelos de redes neuronales recurrentes basados ​​en la atención para la detección conjunta de intenciones y el llenado de espacios". Preimpresión de arXiv arXiv:1609.01454 (2016).
  23. ^ Liang, Percy y Christopher Potts. "Uniendo el aprendizaje automático y la semántica compositiva". Annu. Rev. Linguist. 1.1 (2015): 355-376.
  24. ^ Andrew Drozdov, Nathanael Schärli, Ekin Akyürek, Nathan Scales, Xinying Song, Xinyun Chen, Olivier Bousquet, Denny Zhou. "ANÁLISIS SEMÁNTICO COMPOSICIONAL CON GRANDES MODELOS DE LENGUAJE", Universidad de Cornell, 30 de septiembre de 2022.
  25. ^ Matt Gardner, Pradeep Dasigi, Srinivasan Iyer, Alane Suhr, Luke Zettlemoyer. "Análisis semántico neuronal". Actas de la 56.ª reunión anual de la Asociación de Lingüística Computacional: resúmenes de tutoriales, julio de 2018.
  26. ^ Woods, William A. Semántica para un sistema de preguntas y respuestas . Vol. 27. Garland Pub., 1979.
  27. ^ ab Zelle, John M. y Raymond J. Mooney. "Aprender a analizar consultas de bases de datos mediante programación lógica inductiva". Actas de la conferencia nacional sobre inteligencia artificial . 1996.
  28. ^ Wong, Yuk Wah y Raymond Mooney. "Aprendizaje de gramáticas sincrónicas para análisis semántico con cálculo lambda". Actas de la 45.ª reunión anual de la Asociación de Lingüística Computacional . 2007.
  29. ^ Liang, Percy. "Semántica compositiva basada en dependencias Lambda". Preimpresión de arXiv arXiv:1309.4408 (2013).
  30. ^ ab Hemphill, Charles T., John J. Godfrey y George R. Doddington. "El corpus piloto de los sistemas de lenguaje hablado ATIS". Speech and Natural Language: Proceedings of a Workshop Held at Hidden Valley, Pennsylvania, June 24–27, 1990 . 1990.
  31. ^ Iyer, Srinivasan, et al. "Aprendizaje de un analizador semántico neuronal a partir de la retroalimentación de los usuarios". Preimpresión de arXiv arXiv:1704.08760 (2017).
  32. ^ Yin, Pengcheng y Graham Neubig. "Un modelo neuronal sintáctico para la generación de código de propósito general". Preimpresión de arXiv arXiv:1704.01696 (2017).
  33. ^ ab Ling, Wang, et al. "Redes de predictores latentes para la generación de código". Preimpresión de arXiv arXiv:1603.06744 (2016).
  34. ^ Yih, Scott Wen-tau, et al. "Análisis semántico mediante la generación de gráficos de consultas por etapas: respuesta a preguntas con base de conocimiento" (2015).
  35. ^ Reddy, Siva, Mirella Lapata y Mark Steedman. "Análisis semántico a gran escala sin pares pregunta-respuesta". Transactions of the Association of Computational Linguistics 2.1 (2014): 377-392.
  36. ^ Guu, Kelvin, John Miller y Percy Liang. "Recorriendo grafos de conocimiento en el espacio vectorial". Preimpresión de arXiv arXiv:1506.01094 (2015).
  37. ^ Artzi, Yoav. "SPF de Cornell: marco de análisis semántico de Cornell". Preimpresión de arXiv arXiv:1311.3011 (2013).
  38. ^ Wong, Yuk Wah; Mooney, Raymond J. (4 de junio de 2006). Aprendizaje para análisis semántico con traducción automática estadística. Actas de la conferencia principal sobre tecnología del lenguaje humano del Capítulo norteamericano de la Asociación de Lingüística Computacional. Asociación de Lingüística Computacional. págs. 439–446. CiteSeerX 10.1.1.135.7209 . doi :10.3115/1220835.1220891. 
  39. ^ Wang, Yushi, Jonathan Berant y Percy Liang. "Construcción de un analizador semántico de la noche a la mañana". Actas de la 53.ª Reunión Anual de la Asociación de Lingüística Computacional y la 7.ª Conferencia Conjunta Internacional sobre Procesamiento del Lenguaje Natural (Volumen 1: Documentos extensos) . Vol. 1. 2015.
  40. ^ Laura Perez-Beltrachini, Parag Jain, Emilio Monti, Mirella Lapata. Análisis semántico para la respuesta a preguntas conversacionales sobre gráficos de conocimiento. 'Actas de la EACL 2023'. 28 de enero de 2023.
  41. ^ Quirk, Chris, Raymond Mooney y Michel Galley. "Del lenguaje al código: aprendizaje de analizadores semánticos para recetas if-this-then-that" (Si esto, entonces aquello). Actas de la 53.ª reunión anual de la Asociación de Lingüística Computacional y la 7.ª Conferencia conjunta internacional sobre procesamiento del lenguaje natural (volumen 1: artículos extensos) . Vol. 1. 2015.
  42. ^ Oda, Yusuke, et al. "Aprender a generar pseudocódigo a partir del código fuente usando traducción automática estadística (t)". ​​Ingeniería de software automatizada (ASE), 2015 30.ª Conferencia internacional IEEE/ACM sobre . IEEE, 2015.
  43. ^ Kuhlmann, Gregory, et al. "Guiar a un alumno de refuerzo con consejos en lenguaje natural: resultados iniciales en RoboCup soccer". Taller AAAI-2004 sobre control supervisor del aprendizaje y sistemas adaptativos . 2004.
  44. ^ Black, E.; Abney, S.; Flickenger, D.; Gdaniec, C.; Grishman, R.; Harrison, P.; Hindle, D.; Ingria, R.; Jelinek, F.; Klavans, J.; Liberman, M.; Marcus, M.; Roukos, S.; Santorini, B.; Strzalkowski, T. (1991). Un procedimiento para comparar cuantitativamente la cobertura sintáctica de las gramáticas inglesas. Speech and Natural Language: Proceedings of a Workshop Held at Pacific Grove, California, February 19–22, 1991.