El análisis sintáctico semántico es la tarea de convertir una expresión del lenguaje natural en una forma lógica : una representación comprensible por máquina de su significado. [1] Por tanto, el análisis sintáctico semántico puede entenderse como la extracción del significado preciso de un enunciado. Las aplicaciones del análisis sintáctico semántico incluyen traducción automática , [2] respuesta a preguntas , [1] [3] inducción de ontologías , [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 los programas de traducción automática que trabajan solo con representaciones semánticas. [8]
En visión artificial , el análisis sintáctico semántico es un proceso de segmentación de objetos 3D. [9] [10]
Tipos
Poco profundo
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 sintáctico semántico superficial se conoce a veces como relleno de ranuras o análisis sintáctico semántico de cuadros, ya que su base teórica proviene de la semántica de cuadros , en la que una palabra evoca un cuadro de conceptos y roles relacionados. Los sistemas de llenado de espacios se utilizan ampliamente en asistentes virtuales junto con clasificadores de intenciones, que pueden verse como mecanismos para identificar el marco evocado por un enunciado. [11] [12] Las arquitecturas populares para el llenado de ranuras son en gran parte variantes de un modelo de 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 ranura. etiquetas. [13] Este tipo de modelo se utiliza en el sistema de comprensión del lenguaje hablado de Amazon Alexa . [11]
Profundo
El análisis sintáctico 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 . [14] Los analizadores semánticos poco profundos pueden analizar expresiones como "muéstrame vuelos de Boston a Dallas" clasificando la intención como "listar vuelos" y llenando los espacios "origen" y "destino" con "Boston" y "Dallas", respectivamente. Sin embargo, el análisis semántico superficial no puede analizar expresiones de composición 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, por lo general convirtiéndolas en un lenguaje de representación de significado formal.
Idiomas de representación
Los primeros analizadores semánticos usaban lenguajes de representación de significados altamente específicos de dominio, [15] con sistemas posteriores que usaban lenguajes más extensibles como Prolog , [16] cálculo lambda , [17] semántica compositiva basada en dependencia lambda (λ-DCS), [18] SQL , [19] [20] Python , [21] Java , [22] el Lenguaje de Representación de Significado de Alexa, [11] y la Representación de Significado Abstracto (AMR). Algunos trabajos han utilizado representaciones de significado más exóticas, como gráficos de consulta, [23] gráficos semánticos [24] o representaciones vectoriales. [25]
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 gráfico 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 basados en gramáticas formales son Cornell Semantic Parsing Framework, [26] Semantic Parsing with Execution (SEMPER) de la Universidad de Stanford , [3] y Word Alignment-based Semantic Parser (WASP). [27]
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.
Respuesta a preguntas
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. [19] 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 Prólogo correspondiente. [16] 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. [28]
Codigo de GENERACION
Los conjuntos de datos populares para la generación de código incluyen dos conjuntos de datos de tarjetas comerciales 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 al vincular los textos de las cartas de Hearthstone a los fragmentos de Python. [22] El conjunto de datos IFTTT [29] utiliza un lenguaje específico de dominio especializado con comandos condicionales cortos. El conjunto de datos de Django [30] empareja fragmentos de Python con pseudocódigo en inglés y japonés que los describe. El conjunto de datos de RoboCup [31] empareja las reglas del inglés con sus representaciones en un lenguaje específico de dominio que los robots virtuales que juegan al fútbol pueden entender.
Ver también
- Programacion automatica
- Clase (filosofía)
- Semántica formal (lingüística)
- Extracción de información
- Recuperación de información
- Respuesta a preguntas
- Análisis semántico (lingüística)
- Etiquetado semántico de roles
- Semántica estadística
- Sintaxis
- Distinción de tipo-token
Referencias
- ^ a b Jia, Robin; Liang, Percy (11 de junio de 2016). "Recombinación de datos para análisis semántico neuronal". arXiv : 1606.03622 [ cs.CL ].
- ^ 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.
- ^ a b Berant, Jonathan, et al. "Análisis semántico en Freebase a partir de pares de preguntas y respuestas". EMNLP. Vol. 2. No. 5. 2013.
- ^ 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.
- ^ 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.
- ^ 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 ].
- ^ 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 ].
- ^ Wilks, Y. y Fass, D. (1992) La familia de semánticas de preferencia , en computadoras y matemáticas con aplicaciones, volumen 23, números 2-5, páginas 205-221.
- ^ Armeni, Iro, et al. " Análisis semántico 3D de espacios interiores a gran escala ". Actas de la Conferencia IEEE sobre Visión por Computador y Reconocimiento de Patrones. 2016.
- ^ Qi, Charles R., et al. " Pointnet: aprendizaje profundo en 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.
- ^ a b c Kumar, Anjishnu, et al. "Simplemente PREGUNTE: Creación de una arquitectura para la comprensión del lenguaje hablado de autoservicio extensible". preimpresión de arXiv arXiv: 1711.00549 (2017).
- ^ Bapna, Ankur, et al. "Hacia el análisis semántico de fotogramas de disparo cero para el escalado de dominios". preimpresión de arXiv arXiv: 1707.02363 (2017).
- ^ 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).
- ^ Liang, Percy y Christopher Potts. "Uniendo el aprendizaje automático y la semántica compositiva". Annu. Rev. Lingüista. 1.1 (2015): 355-376.
- ^ Woods, William A. Semantics para un sistema de preguntas y respuestas . Vol. 27. Garland Pub., 1979.
- ^ a b 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.
- ^ 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.
- ^ Liang, Percy. "Semántica de composición basada en dependencia de Lambda". preimpresión de arXiv arXiv: 1309.4408 (2013).
- ^ a b Hemphill, Charles T., John J. Godfrey y George R. Doddington. "El corpus piloto de 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.
- ^ Iyer, Srinivasan, et al. "Aprender un analizador semántico neuronal a partir de los comentarios de los usuarios". preimpresión de arXiv arXiv: 1704.08760 (2017).
- ^ 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).
- ^ a b Ling, Wang y col. "Redes de predicción latente para la generación de código". preimpresión de arXiv arXiv: 1603.06744 (2016).
- ^ Yih, Scott Wen-tau, et al. "Análisis semántico a través de la generación de gráficos de consultas por etapas: respuesta a preguntas con la base de conocimientos". (2015).
- ^ 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.
- ^ Guu, Kelvin, John Miller y Percy Liang. "Atravesando grafos de conocimiento en el espacio vectorial". preimpresión de arXiv arXiv: 1506.01094 (2015).
- ^ Artzi, Yoav. "Cornell SPF: marco de análisis semántico de Cornell". preimpresión de arXiv arXiv: 1311.3011 (2013).
- ^ Wong, Yuk Wah; Mooney, Raymond J. (4 de junio de 2006). Aprendizaje de análisis semántico con traducción automática estadística . Actas de la conferencia principal sobre Tecnología del Lenguaje Humano Conferencia 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 .
- ^ 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.
- ^ Quirk, Chris, Raymond Mooney y Michel Galley. "Lenguaje para codificar: Aprendiendo 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.
- ^ Oda, Yusuke, et al. "Aprender a generar pseudocódigo a partir del código fuente mediante la traducción automática estadística (t)". Ingeniería de software automatizada (ASE), 2015 30th IEEE / ACM International Conference on . IEEE, 2015.
- ^ Kuhlmann, Gregory, et al. "Guiar a un aprendiz de refuerzo con consejos de lenguaje natural: resultados iniciales en el fútbol RoboCup". El taller AAAI-2004 sobre control supervisor de aprendizaje y sistemas adaptativos . 2004.