24
Facultad de Ingeniería y Arquitectura 2017-II Ingeniería de Sistemas - Sistemas Expertos De Lenguaje natural a Sistemas Expertos Oscar Bazán Ch.

De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Embed Size (px)

Citation preview

Page 1: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura 2017-II Ingeniería de Sistemas - Sistemas Expertos

De Lenguaje natural a Sistemas Expertos

Oscar Bazán Ch.

Page 2: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

Clauses (Facts y Rules): Hechos y reglas.

Básicamente, hay sólo 2 tipos de frases que

utiliza el Visual Prolog: hechos y reglas.Estas

frases son conocidas en Visual Prolog como

clausulas. El corazón de un programa está hecho de cláusulas.

Page 3: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

Ejemplo de una regla más extensa:

En lenguaje natural:

Ej7:

Diana es vegetariana y come sólo lo que su doctor

le dice que coma.

Podríamos plantear:

a. Si comida de menú son con vegetales?

b. Si la comida de menú está en la lista del doctor?

c. Conclusión: Si ambas respuestas son SI, Diana

puede ordenar de la comida del menú.

Page 4: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

Interesante, ¿Y en Visual Prolog?

¿cómo sería esta regla?

diana_puede_comer(Alimento_de_menu):-

vegetal(Alimento_de_menu),

lista_de_doctor(Alimento_de_menu).

Page 5: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

La coma es una conjunción y se lee ‘Y’.

Cuando ambos casos son V, entonces la

conclusión es V.

Esto va a depender de las reglas de conjunción

de lógica proposicional.

Page 6: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

Ej8:

Una persona puede comprar un auto si a la

persona le gusta el auto y el auto está en venta.

Esto, podemos llevarlo a Visual Prolog con la

siguiente regla:

puede_comprar(Nombre, Modelo):-

persona(Nombre),

auto(Modelo),

le_gusta(Nombre, Modelo),

en_venta(Modelo).

Page 7: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

PREDICATES:

Todo lo que utilicemos como hecho o regla debemos

declararlos. Esto se realiza en la zona de Predicates.

ESQUEMA:

PREDICATES

CLAUSES

GOAL

Page 8: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

Para el ejemplo anterior, dicha zona se

representaría así:

PREDICATES

nondeterm puede_comprar(symbol, symbol)

nondeterm persona(symbol)

nondeterm auto(symbol)

le_gusta(symbol, symbol)

en_venta(symbol) Nota:los términos nondeterm y symbol se verán más adelante.

Page 9: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

¿QUÉ IRÍA EN ZONA DE CLAUSES?. CLAUSES

puede_comprar(X,Y):-

persona(X), auto(Y), le_gusta(X,Y), en_venta(Y).

persona(kelly).

persona(judy).

persona(hellen).

persona(mark).

auto(amarillo).

auto(rojo).

le_gusta(kelly, rojo).

le_gusta(judy, pizza).

le_gusta(hellen, tennis).

le_gusta(mark, tennis).

en_venta(pizza).

en_venta(amarillo).

en_venta(rojo).

Page 10: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

GOAL:

En la zona de goal, van la(s) pregunta(s) o

afirmaciones que se desean plantear, para saber

respuestas o deducciones.

Por ejemplo:

puede_comprar(Quien, Que).

puede_comprar(judy, Que).

puede_comprar(kelly, Que).

puede_comprar(Quien, rojo).

Page 11: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

Ejercicios para laboratorio:

Ej9:

Escribir reglas en Visual Prolog que den

significado a estas sentencias de lenguaje natural:

a. Una persona está de hambre si el

estómago de la persona está vacío.

b.A muchas personas les gusta trabajar si es

interesante y pagan bien.

Page 12: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

VARIABLES:

En una simple pregunta, tú puedes usar variables

para preguntarle a Visual Prolog. Siempre con la

primera letra en mayúscula.

Por ejemplo: ¿a quién le gusta el tenis?

le_gusta(X, tenis).

Si consta de varias palabras, separarlas con ’_’.

Por ejemplo:

le_gusta (Quien_sera_a_quien, tenis).

Page 13: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

Si el GOAL es le_gusta(Persona, tennis).

Visual Prolog muestra como respuesta:

Persona=ellen

Persona=mark

2 Solutions

Page 14: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

Puedes almacenar momentáneamente datos en

variables.

Ej10:

PREDICATES

nondeterm le_gusta(symbol,symbol)

CLAUSES

le_gusta(ellen,lectura).

le_gusta(john,computadoras).

le_gusta(john,badminton).

le_gusta(leonard,badminton).

le_gusta(eric,natacion).

le_gusta(eric,lectura).

Veamos a continuación el GOAL.

Page 15: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

le_gusta(Persona, lectura), le_gusta(Persona,

natacion).

Visual Prolog responderá:

Persona=eric

1 Solution

Page 16: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

VARIABLES ANÓNIMAS:

En algún momento se utilizarán muchas variables y algunas

de las cuales no se desea saber sus resultados, en ese

caso se le debe dar un aviso al Visual Prolog de aquéllas

únicas variables requeridas.

Page 17: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

Ej11:

PREDICATES

masculino(symbol)

femenino(symbol)

nondeterm padre_o_madre(symbol, symbol)

CLAUSES

masculino(bill).

masculino(joe).

femenino(sue).

femenino(tammy).

padre_o_madre(bill,joe).

padre_o_madre(sue,joe).

padre_o_madre(joe,tammy).

Estudiemos el GOAL..

Page 18: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

¿Qué pasa si se usan variables comunes?.

GOAL

padre_o_madre(Padre_o_madre, X).

La respuesta de Visual Prolog sería:

Padre_o_madre=bill, X=joe

Padre_o_madre=sue, X=joe

Padre_o_madre=joe, X=tammy

3 Solutions

Page 19: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

Pero si se usara una variable anónima: GOAL

padre_o_madre(Padre_o_madre,_).

La respuesta de Visual Prolog sería:

Padre_o_madre=bill

Padre_o_madre=sue

Padre_o_madre=joe

3 Solutions

Page 20: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

COMENTARIOS: /* Este es un ejemplo de comentario */

% Este es también otro

/************************************/

/* y este de 3 líneas */

/************************************/

/*Tú puedes también colocar comentarios dentro

de otros /*dentro de otros*/ como este */

Page 21: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

NOMBRES DE PREDICADOS: Nombres Legales de

Predicados

Nombres llegales de

Predicados

fact [fact]

is_a *is_a*

has_a has/a

patternCheckList pattern-Check-List

choose_Menu_Item choose Menu Item

predicateName predicate<Name>

first_in_10 >first_in_10

Page 22: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

ARGUMENTOS DE PREDICADOS: Si tu declaras

PREDICATES

Mi_predicado(symbol, integer)

Ya no necesitas declarar el domini, symbol e

integer existen.

Pero si deseas copiar tus propios tipos de

argumentos, sí deberías declararlos en el

dominio.

Page 23: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

Ej12:

PREDICATES

mi_predicado(nom, num) Esto quiere decir que previamente se han

declarado, o sea:

DOMAINS

nom = symbol

num = integer

PREDICATES

mi_predicado(nom, num)

Page 24: De Lenguaje natural a Sistemas Expertos · utiliza el Visual Prolog: hechos y reglas.Estas frases son conocidas en Visual Prolog como clausulas. ... Ejercicios para laboratorio: Ej9:

Facultad de Ingeniería y Arquitectura De lenguaje natural a Sistemas Expertos

FIN