stringtranslate.com

análisis semántico

El análisis semántico es la tarea de convertir un enunciado en lenguaje natural a una forma lógica : una representación de su significado comprensible por máquina. [1] Por 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 traducción automática , [2] respuesta a preguntas , [1] [3] inducción de ontología , [4] razonamiento automatizado , [5] y 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 programas de traducción automática que trabajaban únicamente 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 texto a representaciones formales de significado. Esto contrasta con el etiquetado de roles semánticos y otras formas de procesamiento semántico superficial, que no pretenden producir significados formales completos. [9] En visión por computadora , 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 análisis semántico incluyeron 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 implicó la creación/aprendizaje y el uso de diferentes gramáticas y léxicos en tareas controladas, [14] [15] particularmente gramáticas generales como SCFG. [16] Esto mejoró las gramáticas manuales principalmente porque aprovecharon la naturaleza sintáctica de la oración, pero aún no podían cubrir suficiente variación y no eran lo suficientemente sólidas 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 era resistente al ruido y no requería mucha supervisión ni 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, incluso con sus ventajas, todavía no logra resolver el problema a un nivel más profundo. Los modelos neuronales como Seq2Seq tratan el problema de análisis como un problema de traducción secuencial y el modelo aprende patrones en forma de caja negra, lo que significa que realmente no podemos predecir si el modelo realmente está resolviendo 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 análisis semántico de marco o llenado de espacios, ya que su base teórica proviene de la semántica de marco , en la que una palabra evoca un marco de conceptos y roles relacionados. Los sistemas de llenado de espacios se utilizan ampliamente en asistentes virtuales junto con clasificadores de intención, que pueden verse como mecanismos para identificar el marco evocado por una expresión. [20] [21] Las arquitecturas populares para el llenado de ranuras son en gran medida variantes de un modelo codificador-decodificador, en el que dos redes neuronales recurrentes (RNN) se entrenan conjuntamente para codificar una expresión en un vector y decodificar ese vector en una secuencia de ranuras. etiquetas. [22] Este tipo de modelo se utiliza en el sistema de comprensión del lenguaje hablado Amazon Alexa . [20] Este análisis sigue técnicas de aprendizaje no supervisadas.

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 de significado precisas de enunciados que pueden contener una composicionalidad significativa . [23] Los analizadores semánticos superficiales pueden analizar expresiones como "muéstrame vuelos de Boston a Dallas" clasificando la intención como "lista de vuelos" y llenando los espacios "fuente" y "destino" con "Boston" y "Dallas", respectivamente. Sin embargo, el análisis semántico superficial no puede analizar expresiones compositivas arbitrarias, como "muéstrame vuelos desde Boston a cualquier lugar que tenga vuelos a Juneau". El análisis semántico profundo intenta analizar tales expresiones, generalmente convirtiéndolas en 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 composicional artificial como SCAN. [24]

Análisis semántico neuronal

Los analizadores semánticos desempeñan un papel crucial en los sistemas de comprensión del lenguaje natural porque transforman expresiones del lenguaje natural en estructuras o programas lógicos ejecutables por máquinas. El análisis semántico, un campo de estudio bien establecido, encuentra uso en asistentes de voz, respuesta a preguntas, seguimiento de instrucciones y generación de código. Dado que los enfoques neuronales han estado disponibles durante dos años, muchas de las presunciones que sustentaban el análisis semántico han sido repensadas, lo que ha llevado a un cambio sustancial en los modelos empleados para el análisis semántico. Aunque la red neuronal semántica y el análisis semántico neuronal [25] se ocupan del procesamiento del lenguaje natural (PNL) y la semántica, no son lo mismo. Los modelos y formalismos ejecutables utilizados en la investigación del análisis semántico han dependido tradicionalmente en gran medida de conceptos de la semántica formal en lingüística, como el cálculo λ producido por un analizador CCG. No obstante, trabajos recientes con analizadores semánticos codificadores-decodificadores neuronales hacen posible formalismos más accesibles, como lenguajes de programación convencionales y modelos de estilo NMT que son considerablemente más accesibles para una audiencia más amplia de PNL. Daremos un resumen de los enfoques neuronales contemporáneos del análisis semántico y discutiremos cómo han afectado la comprensión del análisis semántico en este campo.

Idiomas de representación

Los primeros analizadores semánticos utilizaban lenguajes de representación de significados altamente específicos de dominio, [26] y los sistemas posteriores usaban 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 significado Alexa, [20] y la representación de significado abstracto (AMR). Algunos trabajos han utilizado representaciones de significados más exóticas, como gráficos de consulta, [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 la utilización de RNN para traducir directamente de un lenguaje natural a un lenguaje de representación de significado. Ejemplos de sistemas construidos sobre gramáticas formales son el Cornell Semantic Parsing Framework, [37] el Semantic Parsing with Execution (SEMPRE) de la Universidad de Stanford , [3] y el Word Alignment-based Semantic Parser (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 utilizados para responder preguntas a través de consultas de la base de conocimientos y los utilizados para la generación de código.

Respuesta a preguntas

Análisis semántico para responder preguntas conversacionales

Un conjunto de datos estándar para responder preguntas mediante 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. junto con el correspondiente Prolog. [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 correspondientes expresiones λ-DCS. [39] Recientemente, el análisis semántico está ganando popularidad gracias a nuevos trabajos de investigación y muchas grandes empresas, como Google , Microsoft , Amazon , etc., están trabajando en este campo. Aquí se adjunta uno sobre los trabajos recientes de Semantic Parsing 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 las expresiones del usuario (U) y del sistema (S). La columna del medio muestra las anotaciones proporcionadas en CSQA. Los cuadros azules a la derecha muestran la secuencia de acciones (AS) y los análisis semánticos SPARQL (SP) correspondientes.

Codigo de GENERACION

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

Áreas de aplicación

Dentro del campo del procesamiento del lenguaje natural (PNL), 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 varios contextos:

El análisis semántico tiene como objetivo mejorar la eficiencia y eficacia de varias aplicaciones cerrando la brecha entre el lenguaje humano y el procesamiento automático 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 para determinar 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 se calculan en función de las asignaciones de circunscripción o dependencia correctas en el análisis en relación con ese número en referencia y/o análisis de hipótesis. Estas últimas también se conocen como métricas PARSEVAL. [44]

Ver 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 y col. "Análisis semántico en Freebase a partir de pares de preguntas y respuestas". EMNLP. vol. 2. N° 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, Máxima; Popa, 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 uso general". arXiv : 1704.01696 [cs.CL].
  8. ^ Wilks, Y. y Fass, D. (1992) La familia de semántica de preferencias, en informática y matemáticas con aplicaciones, volumen 23, números 2 a 5, páginas 205 a 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 y col. "Análisis semántico 3D de espacios interiores a gran escala". Actas de la Conferencia IEEE sobre visión por computadora y reconocimiento de patrones. 2016.
  11. ^ Qi, Charles R. y col. "Pointnet: aprendizaje profundo sobre conjuntos de puntos para clasificación y segmentación 3D". Actas de la conferencia IEEE sobre visión por computadora 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". Computadora. Lingüista., 8(3-4):110–122. mil novecientos ochenta y dos
  13. ^ Zelle, JM y Mooney, R. J et al. "Aprender a analizar consultas de bases de datos mediante programación de lógica inductiva". Actas de la conferencia nacional sobre inteligencia artificial, páginas 1050–1055, 1996.
  14. ^ Zettlemoyer y Collins, et al. "Aprender a asignar oraciones a forma lógica: clasificación estructurada con gramáticas categoriales probabilísticas". Actas de la XXI Conferencia sobre la incertidumbre en la inteligencia artificial, UAI'05, páginas 658–666, 2005.
  15. ^ Kwiatkowski, T., Zettlemoyer, L., Goldwater, S. y Steedman, M. et al. "Inducir gramáticas ccg probabilísticas a partir de 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. "Lenguaje a 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 y col. "Un modelo neuronal sintáctico para la generación de código de uso general". Actas de la 55.a 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 y col. "Simplemente PREGUNTE: Creación de una arquitectura para la comprensión del lenguaje hablado en autoservicio extensible". Preimpresión de arXiv arXiv:1711.00549 (2017).
  21. ^ Bapna, Ankur y col. "Hacia un análisis semántico de fotogramas de disparo cero para el escalado 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 de intenciones conjuntas 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". Año. Rev. Lingüista. 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 MODELOS DE LENGUAJE GRANDE" Universidad de Cornell, 30 de septiembre de 2022.
  25. ^ Matt Gardner, Pradeep Dasigi, Srinivasan Iyer, Alane Suhr, Luke Zettlemoyer. Actas de "Análisis semántico neuronal" 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. Pub Garland, 1979.
  27. ^ ab Zelle, John M. y Raymond J. Mooney. "Aprender a analizar consultas de bases de datos mediante programación de 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". Habla y lenguaje natural: actas de un taller celebrado en Hidden Valley, Pensilvania, del 24 al 27 de junio de 1990 . 1990.
  31. ^ Iyer, Srinivasan y otros. "Aprender un analizador semántico neuronal a partir de los comentarios 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 y col. "Redes de predictores latentes para la generación de código". Preimpresión de arXiv arXiv:1603.06744 (2016).
  34. ^ Yih, Scott Wen-tau y col. "Análisis semántico mediante generación de gráficos de consultas por etapas: respuesta a preguntas con base de conocimientos". (2015).
  35. ^ Reddy, Siva, Mirella Lapata y Mark Steedman. "Análisis semántico a gran escala sin pares de preguntas y respuestas". Transacciones de la Asociación de Lingüística Computacional 2.1 (2014): 377-392.
  36. ^ Guu, Kelvin, John Miller y Percy Liang. "Atravesando gráficos de conocimiento en el espacio vectorial". Preimpresión de arXiv arXiv:1506.01094 (2015).
  37. ^ Artzi, Yoav. "Cornell SPF: 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 el 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. "Construyendo 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: Artículos extensos) . vol. 1. 2015.
  40. ^ Laura Pérez-Beltrachini, Parag Jain, Emilio Monti, Mirella Lapata. Análisis semántico para la respuesta a preguntas conversacionales sobre gráficos de conocimiento 'Actas sobre EACL 2023'. 28 de enero de 2023.
  41. ^ Quirk, Chris, Raymond Mooney y Michel Galley. "Lenguaje para codificar: aprender analizadores semánticos para recetas 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 y col. "Aprender a generar pseudocódigo a partir del código fuente mediante 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 y col. "Guiar a un alumno de refuerzo con consejos en lenguaje natural: resultados iniciales en el fútbol RoboCup". El taller AAAI-2004 sobre control supervisorio de sistemas de aprendizaje y adaptativos . 2004.
  44. ^ Negro, E.; Abney, S.; Flickenger, D.; Gdaniec, C.; Grishman, R.; Harrison, P.; Hindle, D.; Ingría, R.; Jelinek, F.; Klavans, J.; Liberman, M.; Marco, M.; Roukos, S.; Santorini, B.; Strzalkowski, T. (1991). Un procedimiento para comparar cuantitativamente la cobertura sintáctica de las gramáticas inglesas. Habla y lenguaje natural: actas de un taller celebrado en Pacific Grove, California, del 19 al 22 de febrero de 1991.