Tema 8: Razonamiento con lenguaje natural

´tico Razonamiento Automa Curso 1999–2000 Tema 8: Razonamiento con lenguaje natural Jos´ e A. Alonso Jim´ enez Miguel A. Guti´ errez Naranjo Dpto.

0 downloads 104 Views 87KB Size

Recommend Stories


TEMA 8 LAS PERSONAS NOS RELACIONAMOS CON EL MEDIO NATURAL
UNIDAD DIDÁCTICA ADAPTADA CIENCIAS SOCIALES, GEOGRAFÍA E HISTORIA 1º ESO TEMA 8 LAS PERSONAS NOS RELACIONAMOS CON EL MEDIO NATURAL ÍNDICE 1.- EL PAIS

Tema 5: Razonamiento Condicional
Tema 5: Razonamiento Condicional 97% personas infieren el Modus Ponens 1ª Premisa: Si Pepa se queda en paro, entonces estudia un máster (Premisa Ma

Lenguaje natural y artificial. Constituyentes
Jaime Arias Prieto Lenguaje natural y artificial. Constituyentes 1) Lenguaje natural y artificial - Natural: Aquel lenguaje que sirve para comunicar

Story Transcript

´tico Razonamiento Automa

Curso 1999–2000

Tema 8: Razonamiento con lenguaje natural

Jos´ e A. Alonso Jim´ enez Miguel A. Guti´ errez Naranjo

Dpto. de Ciencias de la Computaci´ on e Inteligencia Artificial

Universidad de Sevilla

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.1

Gram´ aticas libres de contexto x

x

Ejemplos de frases u

El gato come pescado

u

El perro come carne

Ejemplo de gram´ atica oraci´ on sintagma_nominal sintagma_nominal sintagma_verbal art´ ıculo nombre nombre nombre nombre verbo

x

--> --> --> --> --> --> --> --> --> -->

sintagma_nominal, sintagma_verbal nombre art´ ıculo, nombre verbo, sintagma_nominal [el] [gato] [perro] [pescado] [carne] [come]

Arbol de an´ alisis oraci´ on | +-------+-------+ | | sintagma_nominal sintagma_verbal | | +---+---+ +---+---+ | | | | art´ ıculo nombre verbo nombre | | | | el gato come pescado

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.2

Gram´ aticas libres de contexto x

x

Concepto de gram´ atica: G = (N,T,P,S) u

N: vocabulario no terminal (categor´ıas sint´ acticas)

u

T: vocabulario terminal

u

P: reglas de producci´ on

u

S: s´ımbolo inicial

Vocabulario u

V = N ∪ T es el vocabulario

u

N ∩T =∅

x

Gram´ aticas libres de contextos A =⇒ w, con A ∈ N y w ∈ V ∗

x

Derivaciones

x

u

xAy =⇒ xwy mediante A =⇒ w

u

x =⇒ y si existen x1, x2, . . . , xn tales que x = x1 =⇒ x2 · · · =⇒ xn−1 =⇒ xn = y



Lenguaje definido por una gram´ atica ∗ L(G) = {x ∈ T ∗ : S =⇒ x}

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.3

Gram´ aticas libres de contexto en Prolog x

Representaci´ on de oraciones en Prolog

[el, gato, come, pescado] [el, perro, come, carne] x

Gram´ atica en Prolog con listas u

Sesi´ on

?- oracion([el,gato,come,pescado]). Yes ?- oracion([el,come,pescado]). No u

Definici´ on

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]). RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.4

Gram´ aticas libres de contexto en Prolog

x

Gram´ atica en Prolog con listas de diferencia u

Sesi´ on

?- oracion([el,gato,come,pescado]-[]). Yes ?- oracion([el,come,pescado]-[]). No u

Definici´ on

oracion(L-L0) :sintagma_nominal(L-L1), sintagma_verbal(L1-L0). sintagma_nominal(L-L0) :nombre(L-L0). sintagma_nominal(L-L0) :art´ ıculo(L-L1), nombre(L1-L0). sintagma_verbal(L-L0) :verbo(L-L1), sintagma_nominal(L1-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). RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.5

Gram´ aticas de cl´ ausulas definidas x

Metaint´ erprete para GCD u

Gram´ atica

:- op(1200,xfx,--->). oraci´ on sintagma_nominal sintagma_nominal sintagma_verbal art´ ıculo nombre nombre nombre nombre verbo u

---> ---> ---> ---> ---> ---> ---> ---> ---> --->

sintagma_nominal, sintagma_verbal. nombre. art´ ıculo, nombre. verbo, sintagma_nominal. [el]. [gato]. [perro]. [pescado]. [carne]. [come].

Sesi´ on

?- deriva(oraci´ on,[el,gato,come,pescado]-[]). Yes ?- deriva(oraci´ on,[el,gato,X,pescado]-[]). X = come ; No x

Metaint´ erprete de GCD deriva([],E-E). deriva([X],[X|E]-E). deriva((X,Y),E0-E2) :deriva(X,E0-E1), deriva(Y,E1-E2). deriva(X,E0-E1) :(X ---> Y), deriva(Y,E0-E1).

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.6

Gram´ aticas de cl´ ausulas definidas x

Ejemplo de GCD Definici´ on oraci´ on

-->

sintagma_nominal sintagma_nominal

--> -->

sintagma_verbal

-->

art´ ıculo nombre nombre nombre nombre verbo

--> --> --> --> --> -->

u

RA 99–00

Cc Ia

sintagma_nominal, sintagma_verbal. nombre. art´ ıculo, nombre. verbo, sintagma_nominal. [el]. [gato]. [perro]. [pescado]. [carne]. [come].

Razonamiento con lenguaje natural

8.7

Gram´ aticas de cl´ ausulas definidas u

Sesi´ on

?- listing(oraci´ on). oraci´ on(A, B) :sintagma_nominal(A, C), sintagma_verbal(C, B). Yes ?- phrase(oraci´ on,[el,gato,come,pescado]). Yes ?- phrase(oraci´ on,[el,come,pescado]). No ?- phrase(oraci´ on,[el,gato,X,pescado]). X = come ; No ?- phrase(oraci´ on,[X,gato,Y,pescado]). X = el Y = come ; No ?- phrase(sintagma_nominal,L). L = [gato] ; L = [perro] Yes

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.8

Gram´ aticas de cl´ ausulas definidas x

Arbol de an´ alisis con GCD u

Sesi´ on

?- phrase(oraci´ on(T),[el,gato,come,pescado]). T = o(sn(art(el), n(gato)), sv(v(come), sn(n(pescado)))) Yes u

Definici´ on

oraci´ on(o(SN,SV))

-->

sintagma_nominal(sn(N)) --> sintagma_nominal(sn(Art,N)) --> sintagma_verbal(sv(V,SN))

-->

art´ ıculo(art(el)) nombre(n(gato)) nombre(n(perro)) nombre(n(pescado)) nombre(n(carne)) verbo(v(come))

--> --> --> --> --> -->

RA 99–00

Cc Ia

sintagma_nominal(SN), sintagma_verbal(SV). nombre(N). art´ ıculo(Art), nombre(N). verbo(V), sintagma_nominal(SN). [el]. [gato]. [perro]. [pescado]. [carne]. [come].

Razonamiento con lenguaje natural

8.9

Gram´ aticas de cl´ ausulas definidas x

Concordancia de g´ enero u

Sesi´ on

?- phrase(oraci´ on,[el,gato,come,pescado]). Yes ?- phrase(oraci´ on,[la,gato,come,pescado]). No ?- phrase(oraci´ on,[la,gata,come,pescado]). Yes Definici´ on oraci´ on

-->

sintagma_nominal sintagma_nominal

--> -->

sintagma_verbal

-->

art´ ıculo(masculino) art´ ıculo(femenino) nombre(masculino) nombre(femenino) nombre(masculino) verbo

--> --> --> --> --> -->

u

RA 99–00

Cc Ia

sintagma_nominal, sintagma_verbal. nombre(_). art´ ıculo(G), nombre(G). verbo, sintagma_nominal. [el]. [la]. [gato]. [gata]. [pescado]. [come].

Razonamiento con lenguaje natural

8.10

Gram´ aticas de cl´ ausulas definidas x

Concordancia en n´ umero u

Sesi´ on

?- phrase(oraci´ on,[el,gato,come,pescado]). Yes ?- phrase(oraci´ on,[los,gato,come,pescado]). No ?- phrase(oraci´ on,[los,gatos,comen,pescado]). Yes u

Definici´ on

oraci´ on

-->

sintagma_nominal(N) sintagma_nominal(N)

--> -->

sintagma_verbal(N)

-->

art´ ıculo(singular) art´ ıculo(plural) nombre(singular) nombre(plural) nombre(singular) nombre(plural) nombre(singular) nombre(singular) verbo(singular) verbo(plural)

--> --> --> --> --> --> --> --> --> -->

RA 99–00

Cc Ia

sintagma_nominal(N), sintagma_verbal(N). nombre(N). art´ ıculo(N), nombre(N). verbo(N), sintagma_nominal(_). [el]. [los]. [gato]. [gatos]. [perro]. [perros]. [pescado]. [carne]. [come]. [comen].

Razonamiento con lenguaje natural

8.11

Gram´ aticas de cl´ ausulas definidas x

GCD con llamadas a Prolog u

Sesi´ on

?- phrase(oraci´ on,[el,gato,come,pescado]). Yes ?- phrase(oraci´ on,[los,gato,come,pescado]). No ?- phrase(oraci´ on,[los,gatos,comen,pescado]). Yes u

Definici´ on

oraci´ on

-->

sintagma_nominal(N) sintagma_nominal(N)

--> -->

sintagma_verbal(N)

-->

sintagma_nominal(N), sintagma_verbal(N). nombre(N). art´ ıculo(N), nombre(N). verbo(N), sintagma_nominal(_). [el]. [los]. [Palabra], {nombre(Palabra, _)}. [Palabra], {nombre(_, Palabra)}. [come]. [comen].

art´ ıculo(singular) --> art´ ıculo(plural) --> nombre(singular) --> nombre(plural) --> verbo(singular) --> verbo(plural) --> nombre(gato, gatos). nombre(perro, perros). nombre(pescado, pescados). nombre(carne, carnes).

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.12

Gram´ aticas de cl´ ausulas definidas x

Concordancia en g´ enero y n´ umero u

Sesi´ on

?- phrase(oraci´ on,[la,profesora,lee,un,libro]). Yes ?- phrase(oraci´ on,[la,profesor,lee,un,libro]). No ?- phrase(oraci´ on,[los,profesores,leen,un,libro]). Yes ?- phrase(oraci´ on,[los,profesores,leen]). Yes ?- phrase(oraci´ on,[los,profesores,leen,libros]). Yes

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.13

Gram´ aticas de cl´ ausulas definidas u

Definici´ on

oraci´ on

--> 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) nombre_(G,N) determinante_(G,N)

--> [P],{verbo(P,N)}. --> [P],{nombre(P,G,N)}. --> [P],{determinante(P,G,N)}.

nombre(profesor,masculino,singular). nombre(profesores,masculino,plural). nombre(profesora,femenino,singular). nombre(profesoras,femenino,plural). nombre(libro,masculino,singular). nombre(libros,masculino,plural). determinante(el,masculino,singular). determinante(los,masculino,plural). determinante(la,femenino,singular). determinante(las,femenino,plural). determinante(un,masculino,singular). determinante(una,femenino,singular). determinante(unos,masculino,plural). determinante(unas,femenino,plural). verbo(lee,singular). verbo(leen,plural). RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.14

Sem´ antica de expresiones aritm´ eticas x

Sesi´ on ?- phrase(exp_numerica(N),[’(’,2,+,3,’)’]). N = 5 ; No ?- phrase(exp_numerica(N),[’(’,’(’,2,+,3,’)’,*,4,’)’]). N = 20 ; No

x

Definici´ on exp_numerica(N) exp_numerica(N) exp_numerica(N)

operacion(+) operacion(-) operacion(*) operacion(//)

--> [N], {integer(N)}. --> [’(’], exp_numerica(N), [’)’]. --> [’(’], exp_numerica(N1), operacion(Op), exp_numerica(N2), [’)’], {aplica(Op,N1,N2,N)}. --> --> --> -->

[+]. [-]. [*]. [/].

aplica(Op,N1,N2,N) :T =.. [Op,N1,N2], N is T.

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.15

Razonamiento con lenguaje natural x

Gram´ atica de asertos y preguntas u

Ejemplos

?- phrase(oraci´ on(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 ?- phrase(pregunta(P),L). P = europeo(juan) L = [¿, es, juan, europeo, ?] ; P = andaluz(juan) L = [¿, es, juan, andaluz, ?] ; P = europeo(_G297) L = [¿, qui´ en, es, europeo, ?] ; P = andaluz(_G297) L = [¿, qui´ en, es, andaluz, ?] ; No

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.16

Razonamiento con lenguaje natural u

Definici´ on

:- op(600,xfy, ’=>’). oraci´ on((L:-true)) oraci´ on(C) sintagma_verbal(A) pregunta(P)

--> nombre_propio(X), sintagma_verbal(X=>L). --> determinante(A1,A2,C), adjetivo(A1), sintagma_verbal(A2). --> verbo, adjetivo(A). --> [¿,es], nombre_propio(X), adjetivo(X=>P), [?]. --> [¿,qui´ en,es], adjetivo(_X=>P), [?].

pregunta(P)

nombre_propio(juan) determinante(X=>Cu,X=>Ca,(Ca:-Cu)) verbo adjetivo(X=>europeo(X)) adjetivo(X=>andaluz(X))

RA 99–00

Cc Ia

--> --> --> --> -->

[juan]. [todo]. [es]. [europeo]. [andaluz].

Razonamiento con lenguaje natural

8.17

Razonamiento con lenguaje natural x

Sistema de consulta y razonamiento u

Ejemplo

?- consulta([]). ? [juan,es,andaluz]. ? [¿, qui´ en, es, andaluz, ?]. ! [juan, es, andaluz] ? [¿, es, juan, europeo, ?]. ! No ? [todo, andaluz, es, europeo]. ? [¿, es, juan, europeo, ?]. ! [juan, es, europeo] ? [¿, qui´ en, es, europeo, ?]. ! [juan, es, europeo] ? muestra_reglas. ! [todo, andaluz, es, europeo] ! [juan, es, andaluz] ? fin. Yes u

Definici´ on

consulta(Base_de_reglas) :pregunta_y_lee(Entrada), procesa_entrada(Entrada,Base_de_reglas). pregunta_y_lee(Entrada) :write(’? ’), read(Entrada).

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.18

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´ on,Base_de_reglas) :phrase(oraci´ on(Regla),Oraci´ on), !, 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´ on(Clausula),Respuesta), muestra_respuesta(Respuesta), consulta(Base_de_reglas). procesa_entrada(_Pregunta,Base_de_reglas) :muestra_respuesta(’No’), consulta(Base_de_reglas). muestra_reglas([]). muestra_reglas([Regla|Reglas]) :phrase(oraci´ on(Regla),Oraci´ on), muestra_respuesta(Oraci´ on), muestra_reglas(Reglas). muestra_respuesta(Respuesta) :write(’! ’), write(Respuesta), nl.

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.19

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)).

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.20

Bibliograf´ıa x

Cort´ es, U. et als. “Inteligencia artificial” (Ediciones UPC, 1993) u

x

Flach, P. “Simply Logical (Intelligent Reasoning by Example)” (John Wiley, 1994) u

x

Cap. 7: “Reasoning with natural languaje”

Rich, E. y Knight, K. “Inteligencia artificial (segunda edici´ on)” (McGraw–Hill Interamericana, 1994). u

x

Cap. 10: “Tratamiento del lenguaje natural”

Cap. 15: “Procesamiento del lenguaje natural”

Russell, S. y Norvig, P. “Inteligencia artificial (un enfoque moderno)” (Prentice Hall, 1996) u

Cap. 22: “Agentes que se comunican”

u

Cap. 23: “Procesamiento pr´ actico del lenguaje natural”

RA 99–00

Cc Ia

Razonamiento con lenguaje natural

8.21

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.