Tema 10: Procesamiento de lenguaje natural

Documentos relacionados
Tema 8: Razonamiento con lenguaje natural

Tema 3: Sistema inicial de representación y razonamiento

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

Tema 2: Equivalencias y formas normales

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

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

Programación declarativa ( )

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

Tema 1: Revisión de Prolog

Programación Declarativa Curso Tema 3: Estructuras. José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo

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

Lógica y Programación

7. Programación lógica y Sistemas Expertos

LP - Lenguajes de Programación

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

Métodos de Inteligencia Artificial

Tema 3: Tipos y clases

Tema 3: Tipos y clases

Teoría de Lenguajes. Gramáticas incontextuales

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

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

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

Profesor(a): M. A. Zeferino Galarza Hernández

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

Inteligencia artificial

GUÍA DOCENTE Análisis sintáctico de textos en español

GRAMATICAS LIBRES DEL CONTEXTO

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

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

Inteligencia en Redes de Comunicaciones - 08 Agentes

Construcción de tablas de análisis sintáctico LL(1)

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

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

INGENIERÍA EN SISTEMAS Y COMUNICACIONES

Tema 5: Conceptualización relacional

GUÍA DOCENTE DE LA ASIGNATURA

DEPARTAMENTO: Ingeniería e Investigaciones Tecnológicas

Lógica proposicional. Ivan Olmos Pineda

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

Tecnología de Videojuegos/ Video Games Technology

GUÍA DOCENTE DE LA ASIGNATURA

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

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

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

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD DE CIENCIAS PROGRAMA DE MATEMÁTICAS PLAN DE ESTUDIOS

Tema AA 1: Introducción a al Aprendizaje Automático

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

PROGRAMA ANALÍTICO DE ASIGNATURA

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

Matemáticas Básicas para Computación

Introducción al Procesamiento de Lenguaje Natural Diciembre de 2015

Profs. Carlos Pérez y Ricardo Monascal

Tema 1 Introducción a los Sistemas Basados en el Conocimiento

LENGUA ESPAÑOLA Y LITERATURA 1º ESO. - Análisis sintáctico: Sujeto, Predicado, SN y SV.

PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS

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

Lenguajes Formales. rafael ramirez. Ocata 320

Problemas de Satisfacción de Restricciones

Redes Semánticas. IIMAS Inteligencia Artificial. Alumno: Vicente Iván Sánchez Carmona Profesora: Dr. Ana Lilia Laureano

GUÍA DOCENTE DE LA ASIGNATURA. Robótica Industrial y Visión Tridimensional

Universidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación. Inglés I

Introducción a la programación

PROGRAMA INSTRUCCIONAL ROBOTICA

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

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

SEGURIDAD INFORMÁTICA

GUÍA DOCENTE DE LA ASIGNATURA

Lenguajes, Gramáticas y Autómatas Conceptos

La Comprensión de Oraciones

Métodos de Inteligencia Artificial

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

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

Informática Aplicada I

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

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

GUÍA DOCENTE DE LA ASIGNATURA

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

Comprensión de textos escritos

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

MÉTODOS DE OPTIMIZACIÓN EN LA GESTIÓN EMPRESARIAL

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

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

Tema 5: Problemas de satisfacción de restricciones

La Lógica estudia la forma del razonamiento. La Lógica Matemática es la disciplina que trata de métodos de razonamiento. En un nivel elemental, la

UNIVERSIDAD NACIONAL DEL CALLAO

Tema 1.3. Un lenguaje mínimo y su procesador: Restricciones contextuales

Autómatas de Pila y Lenguajes Incontextuales

Modelos de Computación I

Tema: Autómata de Pila

Programa de estudios por competencias Seminario Resolución de Problemas de Métodos Matemáticos I

Tema 13: Aplicaciones de programación funcional

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS

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

2.1 Función, forma y significación del adverbio

Pontificia Universidad Católica del Ecuador

1.- DATOS DE LA ASIGNATURA. Nombre de la asignatura: Inteligencia Artificial. Carrera: Ingeniería en Sistemas Computacionales. Clave de la asignatura:

Introducción a Maxima: Haciendo Matemáticas con Software Libre (2 a Edición)

Conceptos fundamentales de la POO. Fundamentos de la Programación Orientada a Objetos Objetos y Clases

Transcripción:

Programación lógica Curso 2002 03 Tema 0: 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 2002 03 CcIa Procesamiento de lenguaje natural 0.

Razonamiento con lenguaje natural Sistema de consulta y razonamiento Ejemplo?- consulta([]).? [juan,es,andaluz].? [, quién, es, andaluz,?].! [juan, es, andaluz]? [, es, juan, europeo,?].! No? [todo, andaluz, es, europeo].? [, es, juan, europeo,?].! [juan, es, europeo]? [, quién, es, europeo,?].! [juan, es, europeo]? muestra_reglas.! [todo, andaluz, es, europeo]! [juan, es, andaluz]? fin. PL 2002 03 CcIa Procesamiento de lenguaje natural 0.2

Gramáticas libres de contexto Ejemplos de frases El gato come pescado El perro come carne Ejemplo de gramática 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 2002 03 CcIa Procesamiento de lenguaje natural 0.3

Gramáticas libres de contexto Árbol de análisis oración +-------+-------+ sintagma_nominal sintagma_verbal +---+---+ +---+---+ artículo nombre verbo nombre el gato come pescado PL 2002 03 CcIa Procesamiento de lenguaje natural 0.4

Gramáticas libres de contexto 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 = Gramáticas libres de contextos: A = w con A N y w V 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} PL 2002 03 CcIa Procesamiento de lenguaje natural 0.5

Gramáticas libres de contexto en Prolog Representación de oraciones en Prolog [el, gato, come, pescado] [el, perro, come, carne] Gramática en Prolog con listas Sesión?- oracion([el,gato,come,pescado]).?- oracion([el,come,pescado]). No Definición oracion(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 2002 03 CcIa Procesamiento de lenguaje natural 0.6

Gramáticas libres de contexto en Prolog Gramática en Prolog con listas de diferencia Sesión?- oracion([el,gato,come,pescado]-[]).?- oracion([el,come,pescado]-[]). No Definición oracion(l-l0) :- sintagma_nominal(l-l), sintagma_verbal(l-l0). sintagma_nominal(l-l0) :- nombre(l-l0). sintagma_nominal(l-l0) :- artículo(l-l), nombre(l-l0). sintagma_verbal(l-l0) :- verbo(l-l), sintagma_nominal(l-l0). artículo([el L]-L). nombre([gato L]-L). nombre([perro L]-L). nombre([pescado L]-L). nombre([carne L]-L). verbo([come L]-L). PL 2002 03 CcIa Procesamiento de lenguaje natural 0.7

Gramáticas de cláusulas definidas Metaintérprete para GCD Gramática :- op(200,xfx,--->). 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]. Sesión?- deriva(oración,[el,gato,come,pescado]-[]).?- deriva(oración,[el,gato,x,pescado]-[]). X = come ; No PL 2002 03 CcIa Procesamiento de lenguaje natural 0.8

Gramáticas de cláusulas definidas Metaintérprete de GCD deriva([],e-e). deriva([x],[x E]-E). deriva((x,y),e0-e2) :- deriva(x,e0-e), deriva(y,e-e2). deriva(x,e0-e) :- (X ---> Y), deriva(y,e0-e). PL 2002 03 CcIa Procesamiento de lenguaje natural 0.9

Gramáticas de cláusulas definidas 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 2002 03 CcIa Procesamiento de lenguaje natural 0.0

Gramáticas de cláusulas definidas 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). PL 2002 03 CcIa Procesamiento de lenguaje natural 0.

Gramáticas de cláusulas definidas Consulta?- oración([el,gato,come,pescado],[]).?- oración([el,come,pescado],[]). No?- oración([el,gato,x,pescado],[]). X = come ; No?- oración([x,gato,y,pescado],[]). X = el Y = come ; No?- sintagma_nominal(l,[]). L = [gato] ; L = [perro]?- phrase(oración,[el,gato,come,pescado]).?- phrase(sintagma_nominal,l). L = [gato] ; L = [perro] PL 2002 03 CcIa Procesamiento de lenguaje natural 0.2

Gramáticas de cláusulas definidas Arbol de análisis con GCD Sesión?- oración(t,[el,gato,come,pescado],[]). T = o(sn(art(el),n(gato)),sv(v(come),sn(n(pescado))))?- phrase(oración(t),[el,gato,come,pescado]). T = 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 2002 03 CcIa Procesamiento de lenguaje natural 0.3

Gramáticas de cláusulas definidas 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 2002 03 CcIa Procesamiento de lenguaje natural 0.4

Gramáticas de cláusulas definidas Concordancia de género Sesión?- phrase(oración,[el,gato,come,pescado]).?- phrase(oración,[la,gato,come,pescado]). No?- phrase(oración,[la,gata,come,pescado]). Definición 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 2002 03 CcIa Procesamiento de lenguaje natural 0.5

Gramáticas de cláusulas definidas Concordancia en número Sesión?- phrase(oración,[el,gato,come,pescado]).?- phrase(oración,[los,gato,come,pescado]). No?- phrase(oración,[los,gatos,comen,pescado]). PL 2002 03 CcIa Procesamiento de lenguaje natural 0.6

Gramáticas de cláusulas definidas 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 2002 03 CcIa Procesamiento de lenguaje natural 0.7

Gramáticas de cláusulas definidas GCD con llamadas a Prolog L = {a 2n b 2n c 2n : n N} Ejemplos?- palabra([a,a,b,b,c,c],[]).?- palabra([a,b,c],[]). No?- phrase(palabra,l). L = [] ; L = [a,a,b,b,c,c] ; L = [a,a,a,a,b,b,b,b,c,c,c,c] ; L = [a,a,a,a,a,a,b,b,b,b,b,b,c,c,c,c,c,c] PL 2002 03 CcIa Procesamiento de lenguaje natural 0.8

Gramáticas de cláusulas definidas Gramática palabra --> a(n), b(n), c(n), {par(n)}. a(0) --> []. a(s(n)) --> [a],a(n). b(0) --> []. b(s(n)) --> [b],b(n). c(0) --> []. c(s(n)) --> [c],c(n). par(0). par(s(s(n))) :- par(n). Compilación?- listing(palabra). palabra(a, B) :- a(c, A, D), b(c, D, E), c(c, E, F), par(c), B=F. PL 2002 03 CcIa Procesamiento de lenguaje natural 0.9

Gramáticas de cláusulas definidas Sesión?- phrase(oración,[el,gato,come,pescado]). =>?- phrase(oración,[los,gato,come,pescado]). => No?- 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]. verbo(singular) --> [come]. verbo(plural) --> [comen]. nombre(singular) --> [Palabra], {es_nombre(palabra, _)}. nombre(plural) --> [Palabra], {es_nombre(_, Palabra)}. es_nombre(gato, gatos). es_nombre(perro, perros). es_nombre(pescado, pescados). es_nombre(carne, carnes). PL 2002 03 CcIa Procesamiento de lenguaje natural 0.20

Gramáticas de cláusulas definidas Concordancia en género y número Sesión?- phrase(oración,[la,profesora,lee,un,libro]).?- phrase(oración,[la,profesor,lee,un,libro]). No?- phrase(oración,[los,profesores,leen,un,libro]).?- phrase(oración,[los,profesores,leen]).?- phrase(oración,[los,profesores,leen,libros]). PL 2002 03 CcIa Procesamiento de lenguaje natural 0.2

Gramáticas de cláusulas definidas Definición es_nombre(profesor,masculino,singular). es_nombre(profesores,masculino,plural). es_nombre(profesora,femenino,singular). es_nombre(profesoras,femenino,plural). es_nombre(libro,masculino,singular). es_nombre(libros,masculino,plural). es_determinante(el,masculino,singular). es_determinante(los,masculino,plural). es_determinante(la,femenino,singular). es_determinante(las,femenino,plural). es_determinante(un,masculino,singular). es_determinante(una,femenino,singular). es_determinante(unos,masculino,plural). es_determinante(unas,femenino,plural). es_verbo(lee,singular). es_verbo(leen,plural). PL 2002 03 CcIa Procesamiento de lenguaje natural 0.22

Gramáticas de cláusulas definidas 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). verbo(n) --> [P],{es_verbo(P,N)}. nombre(g,n) --> [P],{es_nombre(P,G,N)}. determinante(g,n) --> [P],{es_determinante(P,G,N)}. PL 2002 03 CcIa Procesamiento de lenguaje natural 0.23

Razonamiento con lenguaje natural Gramática de asertos y preguntas Ejemplos?- phrase(oración(o),l). O = europeo(juan) :- true L = [juan, es, europeo] ; O = andaluz(juan) :- true L = [juan, es, andaluz] ; O = europeo(_g273) :- europeo(_g273) L = [todo, europeo, es, europeo] ; O = andaluz(_g273) :- europeo(_g273) L = [todo, europeo, es, andaluz] ; O = europeo(_g273) :- andaluz(_g273) L = [todo, andaluz, es, europeo] ; O = andaluz(_g273) :- andaluz(_g273) L = [todo, andaluz, es, andaluz] ; No PL 2002 03 CcIa Procesamiento de lenguaje natural 0.24

Razonamiento con lenguaje natural?- phrase(pregunta(p),l). P = europeo(juan) L = [, es, juan, europeo,?] ; P = andaluz(juan) L = [, es, juan, andaluz,?] ; P = europeo(_g297) L = [, quién, es, europeo,?] ; P = andaluz(_g297) L = [, quién, es, andaluz,?] ; No PL 2002 03 CcIa Procesamiento de lenguaje natural 0.25

Razonamiento con lenguaje natural Definición :- op(600,xfy, => ). oración((l:-true)) --> nombre_propio(x), sintagma_verbal(x=>l). oración(c) --> determinante(a,a2,c), adjetivo(a), sintagma_verbal(a2). sintagma_verbal(a) --> verbo, adjetivo(a). pregunta(p) --> [,es], nombre_propio(x), adjetivo(x=>p), [?]. pregunta(p) --> [,quién,es], adjetivo(_x=>p), [?]. nombre_propio(juan) determinante(x=>cu,x=>ca,(ca:-cu)) verbo adjetivo(x=>europeo(x)) adjetivo(x=>andaluz(x)) --> [juan]. --> [todo]. --> [es]. --> [europeo]. --> [andaluz]. PL 2002 03 CcIa Procesamiento de lenguaje natural 0.26

Razonamiento con lenguaje natural Sistema de consulta y razonamiento Ejemplo?- consulta([]).? [juan,es,andaluz].? [, quién, es, andaluz,?].! [juan, es, andaluz]? [, es, juan, europeo,?].! No? [todo, andaluz, es, europeo].? [, es, juan, europeo,?].! [juan, es, europeo]? [, quién, es, europeo,?].! [juan, es, europeo]? muestra_reglas.! [todo, andaluz, es, europeo]! [juan, es, andaluz]? fin. PL 2002 03 CcIa Procesamiento de lenguaje natural 0.27

Razonamiento con lenguaje natural Definición consulta(base_de_reglas) :- pregunta_y_lee(entrada), procesa_entrada(entrada,base_de_reglas). pregunta_y_lee(entrada) :- write(? ), read(entrada). PL 2002 03 CcIa Procesamiento de lenguaje natural 0.28

Razonamiento con lenguaje natural procesa_entrada(fin,_base_de_reglas) :-!. procesa_entrada(muestra_reglas,base_de_reglas) :-!, muestra_reglas(base_de_reglas), consulta(base_de_reglas). procesa_entrada(oración,base_de_reglas) :- phrase(oración(regla),oración),!, consulta([regla Base_de_reglas]). procesa_entrada(pregunta,base_de_reglas) :- phrase(pregunta(p),pregunta), prueba(p,base_de_reglas),!, transforma(p,clausula), phrase(oración(clausula),respuesta), muestra_respuesta(respuesta), consulta(base_de_reglas). procesa_entrada(_pregunta,base_de_reglas) :- muestra_respuesta( No ), consulta(base_de_reglas). PL 2002 03 CcIa Procesamiento de lenguaje natural 0.29

Razonamiento con lenguaje natural muestra_reglas([]). muestra_reglas([regla Reglas]) :- phrase(oración(regla),oración), muestra_respuesta(oración), muestra_reglas(reglas). muestra_respuesta(respuesta) :- write(! ), write(respuesta), nl. PL 2002 03 CcIa Procesamiento de lenguaje natural 0.30

Razonamiento con lenguaje natural prueba(true,_base_de_reglas) :-!. prueba((a,b),base_de_reglas) :-!, prueba(a,base_de_reglas), prueba(b,base_de_reglas). prueba(a,base_de_reglas) :- busca_clausula((a:-b),base_de_reglas), prueba(b,base_de_reglas). busca_clausula(clausula,[regla _Reglas]) :- copy_term(regla,clausula). busca_clausula(clausula,[_regla Reglas]) :- busca_clausula(clausula,reglas). transforma((a,b),[(a:-true) Resto]) :-!, transforma(b,resto). transforma(a,(a:-true)). PL 2002 03 CcIa Procesamiento de lenguaje natural 0.3

Bibliografía Bratko, I. Prolog Programming for Artificial Intelligence (Third ed.) (Prentice Hall, 200) Cap 2: Language Processing with Grammar Rules Fernández, G. Representación del conocimiento en sistemas inteligentes (Universidad Politécnica de Madrid, 2003) Cap. 2.4: Un analizador sintáctico Flach, P. Simply Logical (Intelligent Reasoning by Example) (John Wiley, 994) Cap. 7: Reasoning with natural languaje Pereira, F.C. y Shieber, S.M. Prolog and natural-languages analysis (CSLI, 987) PL 2002 03 CcIa Procesamiento de lenguaje natural 0.32