Tema 5: Procesamiento de lenguaje natural

Documentos relacionados
Tema 8: Razonamiento con lenguaje natural

Tema 3: Sistema inicial de representación y razonamiento

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

Programación declarativa ( )

Tema 2: Equivalencias y formas normales

Lógica y Programación

Inteligencia Artificial II: Conocimiento, Razonamiento y Planeación. Presentación del Curso.

Tema 1: Revisión de Prolog

PROGRAMACIÓN LÓGICA INTRODUCCIÓN. Juan Juárez Fuentes

Tema 2: Representación de problemas como espacios de estados

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

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

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

Inteligencia artificial

Métodos de Inteligencia Artificial

Profs. Carlos Pérez y Ricardo Monascal

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

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

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

ESCUELA: UNIVERSIDAD DEL ISTMO

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

El orden oracional. Prof. Loida E. Rodríguez Sánchez. Escuela de Artes Plásticas

DISEÑO CURRICULAR INGLES I

SEVI 300 CURSO AVANZADO DE GRAMÁTICA Y REDACCIÓN

GUÍA DOCENTE DE LA ASIGNATURA

PROGRAMA ANALÍTICO DE ASIGNATURA

Carrera: SCM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Inteligencia Artificial. Grado en INFORMÁTICA 4º curso. Modalidad: Presencial

GUÍA DOCENTE DE LA ASIGNATURA

ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS

GUÍA DOCENTE DE LA ASIGNATURA

Tema 6. AREAS de APLICACIÓN Bases de Datos Sistemas Expertos Lenguaje Natural. 6. AREAS de APLICACIÓN 87

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2013-II SÍLABO UNIDAD DIDÁCTICA : INGLÉS REDES DE COMUNICACIÓN EMPRESARIAL

Procesadores de Lenguaje

Tema 5: Conceptualización relacional

1. Computadores y programación

Tema 5: Problemas de satisfacción de restricciones

D. Prerrequisitos, correquisitos y otros requerimientos

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

Ed. Física Lenguaje Matemática Lenguaje. Matemática Lenguaje Ed. Física Artes Música. Orientación Tecnología

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

Problemas de Satisfacción de Restricciones

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

DISEÑO CURRICULAR INGLES II

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

DEPARTAMENTO: Ingeniería e Investigaciones Tecnológicas

UNIVERSIDAD AUTONOMA SAN FRANCISCO

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

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

Lenguajes (gramáticas y autómatas)

OPTATIVA I: MINERIA DE DATOS

Aprendizaje Computacional. Eduardo Morales y Jesús González

1 CONTENIDOS TEMA 1. LOS TEXTOS PERIODÍSTICOS LENGUA Y LITERATURA 2º BACHILLERATO PROGRAMACIÓN CURSO I. CONTENIDOS LINGÜÍSTICOS

Prolog: Listas (y II) MRC

Tecnología de Videojuegos/ Video Games Technology

13.3. MT para reconocer lenguajes

FACULTAD DE CIENCIAS DE LA SALUD ESCUELA PROFESIONAL DE MEDICINA HUMANA

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Facultad de Ingeniería en Electricidad y Computación SYLLABUS DEL CURSO Procesamiento Digital de Imágenes

Autómatas de Pila y Lenguajes Incontextuales

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

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

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

GUÍA DOCENTE DE LA ASIGNATURA

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2013-II SÍLABO UNIDAD DIDÁCTICA : INGLÉS - REDES MICROINFORMÁTICAS

Prontuario. : : : (787) X 2230 (Metro),

MARía LUZ GUTIÉRREZ ARAUS PROBLEMAS FUNDAMENTALES DE LA GRAMÁTICA DEL ESPAÑOL COMO 2/L

PROGRAMA DE CURSO. Horas Docencia Horas de Trabajo Horas de Cátedra Docentes. Personal Resultados de Aprendizaje

Guía práctica de estudio 06: Lenguaje binario

Mod-Logic, traductor de predicados tipo Prolog a una base de datos relacional e intérprete de consultas con plantillas diseñadas con SQL

Universidad de Quintana Roo División de Desarrollo Sustentable Secretaría Técnica de Docencia

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

Presentación de la asignatura

Unidad 4. Autómatas de Pila

ESTA GUÍA ESTÁ DISPONIBLE EN INGLÉS (Consultar la web del Centro Superior de Idiomas o los recursos de MiAulario)

REPÚBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD DEL ZULIA NÚCLEO COSTA ORIENTAL DEL LAGO PROGRAMA HUMANIDADES Y EDUCACIÓN SECRETARÍA DOCENTE

GUÍA DE ADMISIÓN PARA LA MAESTRÍA EN TECNOLOGÍA DE CÓMPUTO

GRAMÁTICA ESPAÑOLA AVANZADA. (SPA 401. Spanish Grammar) Profesor: Eduardo España Palop

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

INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL

La ciencia del lenguaje Evoluciónenlasideassobreel lenguaje. 2. Gramáticay lingüística.

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

GUÍA DOCENTE DE LA ASIGNATURA

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

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

7. Programación lógica y Sistemas Expertos

Página Web

GUÍA DOCENTE DE LA ASIGNATURA

GUÍA DOCENTE 1. DESCRIPCIÓN DE LA ASIGNATURA

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

5. Programación lógica y Bases de Datos

LENGUAJE, LENGUA Y HABLA. EL SIGNO LINGÜÍSTICO.

Asignatura: SISTEMAS EN TIEMPO REAL Código: Año académico: 2009/2010 Centro:

CONTENIDOS MÍNIMOS LENGUA CASTELLANA Y LITERATURA

Teoría de la Computabilidad

SYLLABUS de la Asignatura ICF253 Control de Gestión

Guía de estudio para el examen de admisión - Convocatoria 2013

Module English Learning Formula.

EL PRONOMBRE Naturaleza, historia y ámbito de una categoría gramatical

Transcripción:

Programación lógica Curso 2003 04 Tema 5: Procesamiento de lenguaje natural José A. Alonso Jiménez Jose-Antonio.Alonso@cs.us.es http://www.cs.us.es/ jalonso Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla PL 2003 04 CcIa Procesamiento de lenguaje natural 5.

Gramáticas libres de contexto: Ejemplo Ejemplos de frases El gato come pescado El perro come carne Ejemplo de gramática libre de contexto (GLC) oración --> sintagma_nominal, sintagma_verbal sintagma_nominal --> nombre sintagma_nominal --> artículo, nombre sintagma_verbal --> verbo, sintagma_nominal artículo --> [el] nombre --> [gato] nombre --> [perro] nombre --> [pescado] nombre --> [carne] verbo --> [come] PL 2003 04 CcIa Procesamiento de lenguaje natural 5.2

Gramáticas libres de contexto: Árbol de análisis Árbol de análisis oracion sintagma_nominal sintagma_verbal articulo nombre verbo sintagma_nomimal nombre el gato come pescado PL 2003 04 CcIa Procesamiento de lenguaje natural 5.3

Gramáticas libres de contexto: Definiciones Concepto de gramática: G = (N,T,P,S) N: vocabulario no terminal (categorías sintácticas) T: vocabulario terminal P: reglas de producción S: símbolo inicial Vocabulario: V = N T es el vocabulario con N T = Derivaciones xay = xwy mediante A = w x = y si existen x, x 2,..., x n tales que x = x = x 2 = x n = x n = y Lenguaje definido por una gramática: L(G) = {x T : S = x} Gramáticas libres de contextos (GLC): A = w con A N y w V PL 2003 04 CcIa Procesamiento de lenguaje natural 5.4

Reconocedor de GLC mediante append Representación de oraciones en Prolog [el, gato, come, pescado] [el, perro, come, carne] Reconocedor de GLC en Prolog mediante append Sesión (con coste)?- time(oración([el,gato,come,pescado])). % 78 inferences in 0.00 seconds (Infinite Lips)?- time(oración([el,come,pescado])). % 349 inferences in 0.00 seconds (Infinite Lips) Definición oración(o) :- sintagma_nominal(sn), sintagma_verbal(sv), append(sn,sv,o). sintagma_nominal(sn) :- nombre(sn). sintagma_nominal(sn) :- artículo(a), nombre(n), append(a,n,sn). sintagma_verbal(sv) :- verbo(v), sintagma_nominal(sn), append(v,sn,sv). artículo([el]). nombre([gato]). nombre([perro]). nombre([pescado]). nombre([carne]). verbo([come]). PL 2003 04 CcIa Procesamiento de lenguaje natural 5.5

Reconocedor de GLC mediante append Otros usos de la gramática Generación de las oraciones?- oración(o). O = [gato, come, gato] ; O = [gato, come, perro] ; O = [gato, come, pescado]?- findall(_o,oración(_o),_l),length(_l,n). N = 64 Reconocedor de las categorías gramaticales?- sintagma_nominal([el,gato]).?- sintagma_nominal([un,gato]). Generador de las categorias gramaticales?- findall(_sn,sintagma_nominal(_sn),l). L = [[gato],[perro],[pescado],[carne],[el,gato],[el,perro],[el,pescado],[el,carne]] PL 2003 04 CcIa Procesamiento de lenguaje natural 5.6

Reconocedor de GLC mediante listas de diferencia Reconocedor de GLC en Prolog mediante listas de diferencia Sesión (y ganancia en eficiencia)?- time(oración([el,gato,come,pescado]-[])). % 9 inferences in 0.00 seconds (Infinite Lips)?- time(oración([el,come,pescado]-[])). % 5 inferences in 0.00 seconds (Infinite Lips) Definición oración(a-b) :- sintagma_nominal(a-c), sintagma_verbal(c-b). sintagma_nominal(a-b) :- nombre(a-b). sintagma_nominal(a-b) :- artículo(a-c), nombre(c-b). sintagma_verbal(a-b) :- verbo(a-c), sintagma_nominal(c-b). artículo([el A]-A). nombre([gato A]-A). nombre([perro A]-A). nombre([pescado A]-A). nombre([carne A]-A). verbo([come A]-A). PL 2003 04 CcIa Procesamiento de lenguaje natural 5.7

Reconocedor de GLC mediante listas de diferencia Otros usos de la gramática Generación de las oraciones?- oración(o-[]). O = [gato, come, gato] ; O = [gato, come, perro] ; O = [gato, come, pescado]?- findall(_o,oración(_o-[]),_l),length(_l,n). N = 64 Reconocedor de las categorías gramaticales?- sintagma_nominal([el,gato]-[]).?- sintagma_nominal([un,gato]-[]). Generador de las categorias gramaticales?- findall(_sn,sintagma_nominal(_sn-[]),l). L = [[gato],[perro],[pescado],[carne],[el,gato],[el,perro],[el,pescado],[el,carne]] PL 2003 04 CcIa Procesamiento de lenguaje natural 5.8

Gramáticas de cláusulas definidas: Ejemplo Ejemplo de GCD Definición oración --> sintagma_nominal, sintagma_verbal. sintagma_nominal --> nombre. sintagma_nominal --> artículo, nombre. sintagma_verbal --> verbo, sintagma_nominal. artículo --> [el]. nombre --> [gato]. nombre --> [perro]. nombre --> [pescado]. nombre --> [carne]. verbo --> [come]. PL 2003 04 CcIa Procesamiento de lenguaje natural 5.9

Gramáticas de cláusulas definidas: Usos Usos de la gramática Reconocimiento de oraciones?- oración([el,gato,come,pescado],[]).?- oración([el,come,pescado]-[]). Generación de las oraciones?- oración(o,[]). O = [gato, come, gato] ; O = [gato, come, perro] ; O = [gato, come, pescado]?- findall(_o,oración(_o,[]),_l),length(_l,n). N = 64 PL 2003 04 CcIa Procesamiento de lenguaje natural 5.0

Gramáticas de cláusulas definidas: Usos Reconocedor de las categorías gramaticales?- sintagma_nominal([el,gato],[]).?- sintagma_nominal([un,gato],[]). Generador de las categorias gramaticales?- findall(_sn,sintagma_nominal(_sn,[]),l). L = [[gato],[perro],[pescado],[carne],[el,gato],[el,perro],[el,pescado],[el,carne]] Determinacion de elementos?- oración([x,gato,y,pescado],[]). X = el Y = come ; La relación phrase?- phrase(oración,[el,gato,come,pescado]).?- phrase(sintagma_nominal,l). L = [gato] ; L = [perro] PL 2003 04 CcIa Procesamiento de lenguaje natural 5.

Gramáticas de cláusulas definidas: Compilación Compilación?- listing([oración,sintagma_nominal,sintagma_verbal,artículo,nombre,verbo]). oración(a, B) :- sintagma_nominal(a, C), sintagma_verbal(c, B). sintagma_nominal(a, B) :- nombre(a, B). sintagma_nominal(a, B) :- artículo(a, C), nombre(c, B). sintagma_verbal(a, B) :- verbo(a, C), sintagma_nominal(c, B). artículo([el A], A). nombre([gato A], A). nombre([perro A], A). nombre([pescado A], A). nombre([carne A], A). verbo([come A], A). Eficiencia?- time(oración([el,gato,come,pescado],[])). % 9 inferences in 0.00 seconds (Infinite Lips)?- time(oración([el,come,pescado]-[])). % 5 inferences in 0.00 seconds (Infinite Lips) PL 2003 04 CcIa Procesamiento de lenguaje natural 5.2

Reglas recursivas en GCD Problema: Extender el ejemplo de GCD para aceptar oraciones como [el,gato,come,pescado,o,el,perro,come,pescado] Primera propuesta GCD oración --> oración, conjunción, oración. oración --> sintagma_nominal, sintagma_verbal. sintagma_nominal --> nombre. sintagma_nominal --> artículo, nombre. sintagma_verbal --> verbo, sintagma_nominal. artículo --> [el]. nombre --> [gato]. nombre --> [perro]. nombre --> [pescado]. nombre --> [carne]. verbo --> [come]. conjunción --> [y]. conjunción --> [o]. PL 2003 04 CcIa Procesamiento de lenguaje natural 5.3

Reglas recursivas en GCD Sesión?- oración([el,gato,come,pescado,o,el,perro,come,pescado],[]). ERROR: Out of local stack?- listing(oración). oración(a, B) :- oración(a, C), conjunción(c, D), oración(d, B). oración(a, B) :- sintagma_nominal(a, C), sintagma_verbal(c, B). PL 2003 04 CcIa Procesamiento de lenguaje natural 5.4

Reglas recursivas en GCD Segunda propuesta oración --> sintagma_nominal, sintagma_verbal. oración --> oración, conjunción, oración. sintagma_nominal --> nombre. sintagma_nominal --> artículo, nombre. sintagma_verbal --> verbo, sintagma_nominal. artículo --> [el]. nombre --> [gato]. nombre --> [perro]. nombre --> [pescado]. nombre --> [carne]. verbo --> [come]. conjunción --> [y]. conjunción --> [o]. Sesión?- oración([el,gato,come,pescado,o,el,perro,come,pescado],[]).?- oración([un,gato,come],[]). ERROR: Out of local stack PL 2003 04 CcIa Procesamiento de lenguaje natural 5.5

Reglas recursivas en GCD Tercera propuesta GCD oración --> oración_simple. oración --> oración_simple, conjunción, oración. oración_simple --> sintagma_nominal, sintagma_verbal. sintagma_nominal --> nombre. sintagma_nominal --> artículo, nombre. sintagma_verbal --> verbo, sintagma_nominal. artículo --> [el]. nombre --> [gato]. nombre --> [perro]. nombre --> [pescado]. nombre --> [carne]. verbo --> [come]. conjunción --> [y]. conjunción --> [o]. Sesión?- oración([el,gato,come,pescado,o,el,perro,come,pescado],[]).?- oración([un,gato,come],[]). PL 2003 04 CcIa Procesamiento de lenguaje natural 5.6

GCD para un lenguaje formal GCD para el lenguaje formal {a n b n : n N} Sesión?- s([a,a,b,b],[]).?- s([a,a,b,b,b],[]).?- s(x,[]). X = [] ; X = [a, b] ; X = [a, a, b, b] ; X = [a, a, a, b, b, b] GCD s --> []. s --> i,s,d. i --> [a]. d --> [b]. PL 2003 04 CcIa Procesamiento de lenguaje natural 5.7

Árbol de análisis con GCD Árbol de análisis con GCD Sesión?- oración(a,[el,gato,come,pescado],[]). A = o(sn(art(el),n(gato)),sv(v(come),sn(n(pescado)))) Definición oración(o(sn,sv)) --> sintagma_nominal(sn), sintagma_verbal(sv). sintagma_nominal(sn(n)) --> nombre(n). sintagma_nominal(sn(art,n)) --> artículo(art), nombre(n). sintagma_verbal(sv(v,sn)) --> verbo(v), sintagma_nominal(sn). artículo(art(el)) --> [el]. nombre(n(gato)) --> [gato]. nombre(n(perro)) --> [perro]. nombre(n(pescado)) --> [pescado]. nombre(n(carne)) --> [carne]. verbo(v(come)) --> [come]. PL 2003 04 CcIa Procesamiento de lenguaje natural 5.8

Árbol de análisis con GCD Compilación?- listing([oración,sintagma_nominal,sintagma_verbal,artículo,nombre,verbo]). oración(o(a, B), C, D) :- sintagma_nominal(a, C, E), sintagma_verbal(b, E, D). sintagma_nominal(sn(a), B, C) :- nombre(a, B, C). sintagma_nominal(sn(a, B), C, D) :- artículo(a, C, E), nombre(b, E, D). sintagma_verbal(sv(a, B), C, D) :- verbo(a, C, E), sintagma_nominal(b, E, D). artículo(art(el), [el A], A). nombre(n(gato), [gato A], A). nombre(n(perro), [perro A], A). nombre(n(pescado), [pescado A], A). nombre(n(carne), [carne A], A). verbo(v(come), [come A], A). PL 2003 04 CcIa Procesamiento de lenguaje natural 5.9

Concordancia de género en GCD Concordancia de género en GCD Sesión?- phrase(oración,[el,gato,come,pescado]).?- phrase(oración,[la,gato,come,pescado]).?- phrase(oración,[la,gata,come,pescado]). Definición % ejemplo/gcd_genero.pl oración --> sintagma_nominal, sintagma_verbal. sintagma_nominal --> nombre(_). sintagma_nominal --> artículo(g), nombre(g). sintagma_verbal --> verbo, sintagma_nominal. artículo(masculino) --> [el]. artículo(femenino) --> [la]. nombre(masculino) --> [gato]. nombre(femenino) --> [gata]. nombre(masculino) --> [pescado]. verbo --> [come]. PL 2003 04 CcIa Procesamiento de lenguaje natural 5.20

Concordancia de número en GCD Concordancia de número en GCD Sesión?- phrase(oración,[el,gato,come,pescado]).?- phrase(oración,[los,gato,come,pescado]).?- phrase(oración,[los,gatos,comen,pescado]). Definición oración --> sintagma_nominal(n), sintagma_verbal(n). sintagma_nominal(n) --> nombre(n). sintagma_nominal(n) --> artículo(n), nombre(n). sintagma_verbal(n) --> verbo(n), sintagma_nominal(_). artículo(singular) --> [el]. artículo(plural) --> [los]. nombre(singular) --> [gato]. nombre(plural) --> [gatos]. nombre(singular) --> [perro]. nombre(plural) --> [perros]. nombre(singular) --> [pescado]. nombre(singular) --> [carne]. verbo(singular) --> [come]. verbo(plural) --> [comen]. PL 2003 04 CcIa Procesamiento de lenguaje natural 5.2

Ejemplo de GCD no GCL GCD para el lenguaje formal {a n b n c n : n N} Sesión?- s([a,a,b,b,c,c],[]).?- s([a,a,b,b,b,c,c],[]).?- s(x,[]). X = [] ; X = [a, b, c] ; X = [a, a, b, b, c, c] GCD s --> bloque_a(n), bloque_b(n), bloque_c(n). bloque_a(0) --> []. bloque_a(suc(n)) --> [a], bloque_a(n). bloque_b(0) --> []. bloque_b(suc(n)) --> [b], bloque_b(n). bloque_c(0) --> []. bloque_c(suc(n)) --> [c], bloque_c(n). PL 2003 04 CcIa Procesamiento de lenguaje natural 5.22

GCD con llamadas a Prolog GCD para el lenguaje formal L = {a 2n b 2n c 2n : n N} Ejemplos?- s([a,a,b,b,c,c],[]).?- s([a,b,c],[]).?- s(x,[]). X = [] ; X = [a,a,b,b,c,c] ; X = [a,a,a,a,b,b,b,b,c,c,c,c] ; X = [a,a,a,a,a,a,b,b,b,b GCD s --> bloque_a(n), bloque_b(n), bloque_c(n), {par(n)}. bloque_a(0) --> []. bloque_a(s(n)) --> [a],bloque_a(n). bloque_b(0) --> []. bloque_b(s(n)) --> [b],bloque_b(n). bloque_c(0) --> []. bloque_c(s(n)) --> [c],bloque_c(n). par(0). par(s(s(n))) :- par(n). PL 2003 04 CcIa Procesamiento de lenguaje natural 5.23

Separación de reglas y lexicón Gramática Lexicón lex(el,artículo). lex(gato,nombre). lex(perro,nombre). lex(pescado,nombre). lex(carne,nombre). lex(come,verbo). Regla oración --> sintagma_nominal, sintagma_verbal. sintagma_nominal --> nombre. sintagma_nominal --> artículo, nombre. sintagma_verbal --> verbo, sintagma_nominal. artículo --> [Palabra], {lex(palabra,artículo)}. nombre --> [Palabra], {lex(palabra,nombre)}. verbo --> [Palabra], {lex(palabra,verbo)}. Sesión?- oración([el,gato,come,pescado],[]).?- oración([el,come,pescado],[]). PL 2003 04 CcIa Procesamiento de lenguaje natural 5.24

Separación de reglas y lexicón con concordancia Sesión?- oración([el,gato,come,pescado],[]). ==>?- oración([los,gato,come,pescado],[]). ==>?- oración([los,gatos,comen,pescado],[]). ==> Lexicón lex(el,artículo,singular). lex(gato,nombre,singular). lex(perro,nombre,singular). lex(pescado,nombre,singular). lex(carne,nombre,singular). lex(come,verbo,singular). lex(los,artículo,plural). lex(gatos,nombre,plural). lex(perros,nombre,plural). lex(pescados,nombre,plural). lex(carnes,nombre,plural). lex(comen,verbo,plural). Reglas oración --> sintagma_nominal(n), sintagma_verbal(n). sintagma_nominal(n) --> nombre(n). sintagma_nominal(n) --> artículo(n), nombre(n). sintagma_verbal(n) --> verbo(n), sintagma_nominal(_). artículo(n) --> [Palabra], {lex(palabra,artículo,n)}. nombre(n) --> [Palabra], {lex(palabra,nombre,n)}. verbo(n) --> [Palabra], {lex(palabra,verbo,n)}. PL 2003 04 CcIa Procesamiento de lenguaje natural 5.25

Lexicón con género y número Lexicón con género y número Sesión?- oración([la,profesora,lee,un,libro],[]). ==>?- oración([la,profesor,lee,un,libro],[]). ==>?- oración([los,profesores,leen,un,libro],[]). ==>?- oración([los,profesores,leen],[]). ==>?- oración([los,profesores,leen,libros],[]). ==> Lexicón lex(el,determinante,masculino,singular). lex(la,determinante,femenino,singular). lex(un,determinante,masculino,singular). lex(unos,determinante,masculino,plural). lex(profesor,nombre,masculino,singular). lex(profesora,nombre,femenino,singular). lex(libro,nombre,masculino,singular). lex(lee,verbo,singular). lex(los,determinante,masculino,plural). lex(las,determinante,femenino,plural). lex(una,determinante,femenino,singular). lex(unas,determinante,femenino,plural). lex(profesores,nombre,masculino,plural). lex(profesoras,nombre,femenino,plural). lex(libros,nombre,masculino,plural). lex(leen,verbo,plural). PL 2003 04 CcIa Procesamiento de lenguaje natural 5.26

Lexicón con género y número Reglas oración --> sintagma_nominal(n), verbo(n), complemento. complemento --> []. complemento --> sintagma_nominal(_). sintagma_nominal(n) --> nombre(_,n). sintagma_nominal(n) --> determinante(g,n), nombre(g,n). determinante(g,n) --> [P],{lex(P,determinante,G,N)}. nombre(g,n) --> [P],{lex(P,nombre,G,N)}. verbo(n) --> [P],{lex(P,verbo,N)}. PL 2003 04 CcIa Procesamiento de lenguaje natural 5.27

Bibliografía P. Blackburn, J. Bos y K. Striegnitz Learn Prolog w! [http://www.coli.uni-sb.de/~kris/learn-prolog-now] Cap. 7 Definite Clause Grammars Cap. 8 More Definite Clause Grammars I. Bratko Prolog Programming for Artificial Intelligence (Third ed.) (Prentice Hall, 200) Cap 2: Language Processing with Grammar Rules P. Flach Simply Logical (Intelligent Reasoning by Example) (John Wiley, 994) Cap. 7: Reasoning with natural languaje PL 2003 04 CcIa Procesamiento de lenguaje natural 5.28

Bibliografía U. Nilsson y J. Maluszynski Logic, Programming and Prolog (2nd ed.) (Autores, 2000) [http://www.ida.liu.se/~ulfni/lpp] Cap. 0 Logic and grammars L. Sterling y E. Shapiro The Art of Prolog (2nd edition) (The MIT Press, 994) Cap. 9: Logic grammars PL 2003 04 CcIa Procesamiento de lenguaje natural 5.29