Introducción a las Gramáticas de Cláusulas Definidas (DCGs) Procesamiento del. Lenguaje Natural. Índice. Gramáticas de cláusulas definidas

Documentos relacionados
Cuantificación: Los Cuantificadores y el resto de la oración

Procesadores de Lenguaje

Gramáticas lógicas. Programación Lógica InCo

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

GRAMATICAS LIBRES DEL CONTEXTO

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

1. Computadores y programación

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Teoría de Autómatas y Lenguajes Formales. Introducción a las Gramáticas. Gramáticas incontextuales

PALABRAS Y SINTAGMAS, UNIDADES GRAMATICALES

SISTEMA DE NUMEROS REALES

La sintaxis es el estudio de la estructura de las oraciones, de cómo las palabras se combinan para formar oraciones.

ÍNDICE. Capítulo 3. EL SINTAGMA Introducción... 45

CLASES DE PALABRAS CATEGORÍAS GRAMATICALES

UNIDAD II: TEORÍA DE CONJUNTOS 2.1. INTRODUCCIÓN

Índice Proposiciones y Conectores Lógicos Tablas de Verdad Lógica de Predicados Inducción

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

código: POC-PC edición: 01 Página 1 de 5

Algoritmos y programas. Algoritmos y Estructuras de Datos I

PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR FACULTAD DE COMUNICACIÓN, LINGÜÍSTICA Y LITERATURA ESCUELA DE LINGÜÍSTICA

John Venn Matemático y filósofo británico creador de los diagramas de Venn

Ejercicios de Lógica Proposicional *

COMUNICACIÓN Y LENGUAJE. EL PROCESO DE COMUNICACIÓN HUMANA.

Reconocer y analizar oraciones simples

PRUEBA EXTRAORDINARIA DE SEPTIEMBRE LENGUA CASTELLANA Y LITERATURA 1º ESO

Autómatas Deterministas. Ivan Olmos Pineda

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.

INTRODUCCION A LA INTELIGENCIA ARTIFICIAL MÓDULO 6- CÁLCULO DE PREDICADOS Y LÓGICA DE PRIMER ORDEN

Tema 8: Razonamiento con lenguaje natural

Métodos de Inteligencia Artificial

RECONOCIMIENTO DE PALABRAS

Secondary Spanish Curriculum Overview - Lengua

Inteligencia artificial

PLANES DE RECUPERACIÓN DE 1º ESO PARA SEPTIEMBRE - curso 2013/14 LENGUA CASTELLANA Y LITERATURA

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Lógica Matemática, Sistemas Formales, Cláusulas de Horn

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira

13.3. MT para reconocer lenguajes

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Ing. Yim Isaias Apestegui Florentino

Lenguajes y Gramáticas

Sintaxis del Analizador de consultas Lucene

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

Segunda Práctica. Teoría de Autómatas y Lenguajes Formales I. Escuela Politécnica Superior Universidad Autónoma de Madrid.

Componentes de la narrativa

INTRODUCCIÓN. Depósito Legal: NA3220/2010 ISSN: REVISTA ARISTA DIGITAL

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

ESTRATEGIAS DE REPRESENTACIÓN DE LA FRASE NOMINAL RELATIVIZADA EN ESPAÑOL

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

ESPA 3295: Gramática española - UPR Mayagüez - Otoño 2013 Profesor Melvin González Rivera

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison

Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer, utilizar y diseñar gramáticas de libre contexto

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

La Oración Simple. Un emisor manda un mensaje y un receptor recibe el mensaje.

BASES DE DATOS TEMA 2 MODELOS DE DATOS

Introducción. El uso de los símbolos en matemáticas.

1.- Comprender la comunicación verbal y no verbal en discursos y en textos.

Materia requisito: DOMINIOS COGNITIVOS (Objetos de estudio, temas y subtemas) I. INTRODUCCION A LAS BASES DE DATOS

Recordáis los pasos?

Qué es la morfología?

Eso contradice la idea única de acción, que precisa de un agente. Cuando conjugamos un verbo combinamos raíz con desinencia.

Unidad 5 Morfosintaxis I:

1.- EL SINTAGMA NOMINAL : ESTRUCTURA

Pruebas de escritorio

UNIVERSIDAD LIBRE PROGRAMAS ANALÍTICOS SECCIONAL: PEREIRA FACULTAD: INGENIERIAS. PROGRAMA ACADÉMICO: Ingeniería de Sistemas

Revisión Fecha Revisor Aprobador Descripción de los cambios M.L. J.R. Primera emisión del documento

Programa de Inglés Lectura Nivel I

3. DOCUMENTACIÓN 3.1. DOCUMENTACIÓN DE APLICACIONES. OBJETIVOS PARA MODIFICAR HACE FALTA COMPRENDER/ESTUDIAR:

EL GRUPO SINTÁCTICO Y SUS CLASES

Prof. Mercedes Cartón Lengua castellana y Literatura 1º de Bachillerato Colegio ORVALLE

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.

FELLESUNDERVISNING. Trabaja detenidamente con el capítulo 1. Estudia detenidamente las siguientes páginas antes de la primera clase de teoría:

Tema 6: Teoría Semántica

Capítulo 4. Lógica matemática. Continuar

Introducción al Procesamiento de Lenguaje Natural. Grupo de PLN - InCo 2016

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 3.1: Autómatas Finitos Deterministas

Algoritmos y Programas

La oración simple. [7.1] Cómo estudiar este tema? [7.2] Introducción T E M A

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

Programación en java. Estructuras algorítmicas

Fundamentos de Programación 2017-I

Qué debo estudiar para realizar la prueba de Comunicación y Lenguaje?

Las redes semánticas intentan trasladar esa afirmación a un formalismo Una red semántica será un grafo donde:

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

EJERCICIOS DE GRAMÁTICA Y DE EXPRESIÓN (Con nociones teóricas)

TEMA 3 ÁLGEBRA DE CONMUTACIÓN

UNIVERSIDAD CARLOS III DE MADRID PROGRAMA DE LA ASIGNATURA: LENGUA CASTELLANA

INTRODUCCIÓN La lengua como sistema El signo lingüístico Las articulaciones La lengua como pluralidad de sistemas 24

INDICE. XVII Prólogo a la edición en español. XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas

Ejemplos: Sean los conjuntos: A = { aves} B = { peces } C = { anfibios }

Modelos de Datos. Modelo Entidad-Relación

Aritmética de Enteros

Transcripción:

Introducción a las Gramáticas de Cláusulas Definidas (DCGs) Procesamiento del Lenguaje Natural José María Gómez Hidalgo http://www.esp.uem.es/jmgomez/ Índice Representación del conocimiento sintáctico Gramáticas de estructura de frase

Representación del conocimiento sintáctico Naturaleza del conocimiento sintáctico Estructura de las expresiones de un lenguaje Si es un lenguaje natural, estructura de las oraciones, es decir, cómo se relacionan las palabras de una oración entre sí Cómo se organizan las palabras en grupos o sintagmas Qué palabras o grupos modifican a otras palabras o grupos Qué palabras o grupos son los más importantes de la oración Representación del conocimiento sintáctico Ejemplo Oración: "Juan compra una novela en la librería" "En la librería" es un sintagma preposicional que modifica al núcleo de la oración, que es el verbo "compra Agrupamiento (sintagma preposicional) Modificación (modifica al verbo) Importancia (el verbo es el núcleo)

Representación del conocimiento sintáctico Tipos de conocimiento sintáctico Formalismo gramatical Lenguaje de representación de información sintáctica Gramática - G Representación de la estructura de un lenguaje, en un formalismo gramatical Árbol de análisis Representación de la estructura de una oración concreta de un lenguaje concreto (caracterizado por una gramática expresada en un formalismo) Representación del conocimiento sintáctico Ejemplo Para caracterizar el lenguaje de las expresiones matemáticas sencillas, como "(a + a) * a" Formalismo gramatical: Gramáticas Gramática: expresión sumando + expresión expresión sumando sumando factor * sumando sumando factor factor a factor (expresión)

Representación del conocimiento sintáctico Ejemplo Árbol de análisis de la expresión "(a + a) * a" factor expresión sumando sumando expresión factor sumando expresión factor sumando factor ( a + a ) * a Representación del conocimiento sintáctico Análisis sintáctico y traducción Dada la gramática G que caracteriza al lenguaje L, algunas expresiones pertenecen a L y otras no Reconocimiento = decidir si una expresión pertenece al lenguaje caracterizado por G Análisis (parsing) = decidir si una expresión pertenece al lenguaje representado por G, y en caso afirmativo, asignar a la expresión una estructura acorde a G Análisis = traducción de expresiones en lenguaje natural a estructuras sintácticas

Representación del conocimiento sintáctico Características deseables en los formalismos gramaticales Naturalidad lingüística Conceptos lingüísticos fácilmente expresables Poder expresivo Capacidad de representar lenguajes (matemáticamente) complejos Efectividad computacional Gramática leída por hombre y máquina Diseño de lenguajes formales Representación del conocimiento sintáctico Características deseables en las gramáticas General Debe cubrir el mayor subconjunto posible del idioma Selectiva Debe minimizar el número de problemas que encuentra en la oraciones no válidas Comprensible Debe ser lo más sencilla posible

Gramáticas de estructura de frase Gramática de estructura de frase independiente del contexto, CF-PSG (Context-free phrase structure grammar) Una tupla G = (T,NT,S,P) T es un conjunto finito de símbolos terminales o léxicos NT es un conjunto finito disjunto de T de elementos no terminales o categorías P es un conjunto finito de producciones o reglas de reescritura de la forma A a donde A es una cat. y a es una secuencia de categorías y símbolos léxicos S es un símbolo de NT llamado axioma o símbolo inicial, y no aparece en lado derecho de ninguna regla Gramáticas de estructura de frase Ejemplo (G1) T = {el, la, perro, salchicha, come} NT = {O, SN, SV, V, Art, N} S = O P = {O SN SV, SN Art N, SV V SN, Art el, Art la, V come, N perro, N salchicha}

Gramáticas de estructura de frase Una CF-PSG G sirve para Definir un conjunto de frases (subconjuntos de T*) aceptables en un lenguaje o gramaticales = el lenguaje generado (representado) por la gramática G, L(G) Asignar una o + estructuras sintácticas a frases gramaticales de la gramática, frases de L(G) Las estructuras asignadas son árboles o "grafos acíclicos dirigidos" (Directed acyclic graphs, DAGs) Gramáticas de estructura de frase Ejemplo La frase F = "el perro come la salchicha" es aceptada por G1, es decir, F L(G1) A la frase F se le puede asignar el árbol siguiente Representado como lista: (O (SN (Art el) (N perro)) (SV (V come) (SN (Art la) (N salchicha))))

Gramáticas de estructura de frase Ejemplo Árbol representado gráficamente SN O SV Art N V SN Art N el perro come la salchicha Gramáticas de estructura de frase Un árbol de análisis representa dos tipos de relaciones entre símbolos Dominio Una categoría domina a otra o a un símbolo léxico cuando es su nodo padre en el árbol de análisis Ej. Art domina a "el", y SV domina a V Precedencia Un símbolo precede a otro cuando es un hermano suyo a la izquierda en el árbol de análisis Ej. "el" precede a "perro", y V precede a SN

Gramáticas de estructura de frase Sobregeneración La gramática puede generar frases u oraciones no deseables G1 genera "la salchicha come el perro" Puede no ser problema si se pretende reconocer frases, pero lo es si se pretende producir frases Gramáticas de estructura de frase Infrageneración La gramática puede no ser capaz de generar oraciones deseables G1 no genera "el perro comió la salchicha" Puede no ser problema para producir frases, pero lo es para reconocer frases

Gramáticas de estructura de frase Asignación de estructuras correctas La gramática puede no asignar las estructuras deseadas por el desarrollador de la misma Si se pretende asignar la estructura de función (p. ej., SN Objeto o SN Sujeto), G1 no es capaz de hacerlo Las estructuras dependen de la lingüística, donde no hay acuerdos definitivos Descripción general Notación Uso Análisis gramatical

Definite Clause Grammars (DCGs) Extensión natural de las CF-PSGs Mejoran a las CF-PSGs Proporcionan dependencia del contexto Construcción de estructuras Sintácticas Semánticas Condiciones adicionales => cómputos auxiliares Heredan las propiedades de las CF-PSGs Claridad y modularidad Recursividad Resultados teóricos Sobre todo relativos a algoritmos de análisis Básicamente CF-PSGs con extensiones Azúcar sintáctico sobre Prolog

Notación básica Símbolos con minúsculas Símbolos léxicos entre corchetes (listas) Símbolos léxicos con mayúscula entre comillas simples Reglas incluyen "-->", "," y ".". Ejemplo: DCG31 (G31) Extensiones de la notación Inclusión de variables en las categorías Primera letra con mayúsculas Llamadas a Prolog Entre llaves Ejemplo nombre(n) --> [Palabra], {raiz(palabra,n),es_nombre(n)}. Significa que la palabra Palabra es un nombre N si la raíz de Palabra es N y N es un nombre.

Usos de las DCGs Dependencia del contexto Concordancia Restricciones selectivas Construcción de estructuras Sintácticas Semánticas Realización de cómputos auxiliares Búsqueda en el diccionario y análisis morfológico Concordancia Es una dependencia contextual en sentido lingüístico No es una dependencia contextual en sentido de poder expresivo Ej. "los hombres" "hombres" tiene que concordar con el número del contexto marcado por "los Se puede tratar con CF-PSGs

La gramática se convierte en sintagma_nominal artículo nombre artículo el artículo los nombre hombre nombre hombres sintagma_nominal artículo_singular nombre_singular sintagma_nominal artículo_plural nombre_plural artículo_singular el artículo_plural los nombre_singular hombre nombre_plural hombres Concordancia Se simplifica el tratamiento con DCGs Ejemplo sintagma_nominal --> articulo(numero), nombre(numero). artículo(singular) --> [el]. artículo(plural) --> [los]. nombre(singular) --> [hombre]. nombre(plural) --> [hombres].

Restricciones selectivas Se refieren a dependencias semánticas (actor, instrumento = casos) Imponen chequeos semánticos para disminuir el número de árboles sintácticos generados el grado de sobregeneración de una gramática Por ejemplo, G31 reconoce "la salchicha come el perro => se convierte en DCG32 que no reconozca la expresión Ejemplos: DCG32 y DCG33 Construcción de estructuras Sintácticas árbol de análisis Semánticas representación del significado forma lógica

Construcción del árbol de análisis La estructura representada con términos Ejemplo: "El perro come la salchicha" en G31 o(sn(art(el), n(perro)), sv(v(come), sn(art(la), n(salchicha)))) Ejemplo: DCG34 Construcción de la forma lógica (DCG35) Modificamos G31 => G33 O SN SV SN Det N SV V SN Det un Det todo Det una Det toda V come N perro N salchicha

Forma lógica Queremos representar la frase "todo perro come una salchicha" como X (perro(x) Y (salchicha(y) come(x,y))) Los nombres se representan por medio de predicados, propiedades sobre variables lógicas Los determinantes se representan por medio de cuantificadores Los verbos se representan por medio de predicados Notación de las fórmulas y son operadores binarios => todo(x, P(X)) y existe(x, P(X)) para algún predicado P es un operador binario => implica(p,q) Ej. La fórmula anterior sería todo(x, implica(perro(x), existe(y, implica(salchicha(y), come(x,y)))))

Cómputos auxiliares Ejemplo nombre(n) --> [Palabra], {raiz(palabra,n), es_nombre(n)}. Se obtiene la raiz de la palabra por medio de raiz/2 Se busca en el diccionario una raiz por medio de es_nombre/1 Análisis gramatical en Prolog Prolog convierte automáticamente las reglas a una representación interna operativa DCG = azúcar sintáctico sobre Prolog De manera inmediata, DCG = analizador / generador

Representación interna similar a los grafos del análisis basado en diagramas Estado = par de listas diferencia Ejemplos oracion --> sintagma_nominal, sintagma_verbal. oracion(s0, S2) :- sintagma_nominal(s0, S1), sintagma_verbal(s1, S2). nombre(n) --> [W],{raiz((W, N), es_nombre(n)}. nombre(n, [W X], X) :- raiz(w, N), es_nombre(n). DCG como programa Invocación = objetivo Se puede usar como analizador / generador El tipo de uso está limitado por el comportamiento de los predicados extragramaticales Ejemplo: oracion(o(sn, SV)) --> sintagma_nominal(sn), sintagma_verbal(sv).

Uso como analizador oracion(x, [aquí, va, la, lista, de, entrada],[]). X toma como valor con el árbol de análisis si la entrada es gramatical, o se produce fallo Por cada valor de X, un árbol de análisis Uso como generador oracion(o(sn(...)...), X,[]). X toma como valor una oración cuyo árbol de análisis es el primer argumento Esto es posible porque dado un significado, hay varias formas de realizarlo superficialmente (con activa, pasiva, elipsis, etc.) Se puede especificar parcialmente el árbol

DCG como analizador Tipo de análisis = descendente, de izquierda a derecha y con vuelta atrás, es decir, similar a ADS => ineficiente Ventaja: depuración de la gramática más rápida Se gana en tiempo de desarrollo y se pierde en ejecución (preferible, hardware más barato que software) DCG como analizador Problema en reglas con recursión por la izquierda Evitarlas!!! Pasar a recursión por la derecha Gestionar con argumentos y otros predicados la construcción de las estructuras deseables Predicado auxiliar de ayuda Para gramáticas con símbolos sin argumentos phrase(p, L) :- Goal =.. [P,L,[]], call(goal).