You are on page 1of 8

SISTEMA EXPERTO PARA EL RECOMENDACIÓN DE MÚSICA DE ACUERDO

AL ESTADO DE ÁNIMO

1 ENUNCIADO

La aplicación “Musicólogo”, ha implementado reglas de negocio para recomendar una


lista de canciones. Estas, se detalla a continuación.
 RN01: Dependiendo del estado de ánimo del usuario (triste, feliz, serio, aburrido,
calmado, optimista), se le recomienda una lista de canciones catalogadas con el
tipo de estado de ánimo del usuario.
 RN02: Si se le recomienda una lista de canciones catalogadas con el tipo de estado
de ánimo del usuario y le gusta un determinado género de música (rock,
electrónica, reggae, salsa, bachata, pop), se le recomienda una lista de canciones
con el tipo de género que al usuario le gusta y catalogadas con el tipo de estado
de ánimo del usuario.
 RN03: Si se le recomienda una lista de canciones con el tipo de género que al
usuario le gusta y catalogadas con el tipo de estado de ánimo del usuario y el tipo
de música que le gusta al usuario y le gusta un tipo de musical (actual, antigua) se
le recomienda una lista de canciones con el tipo de género que al usuario le gusta,
catalogadas con el tipo de estado de ánimo del usuario y tipo de música que le
gusta.
https://lissetneyra.wordpress.com/2011/04/05/base-de-conocimiento-para-un-sistema-
experto-de-recomendacion-de-musica-cristiana-de-acuerdo-al-estado-de-animo/
2 Desarrollo

2.1 Mapa de conocimiento

estado de ánimo tristeza

lista de canciones con


ningun género estado de ánimo tristeza

ningun tipo de música

lista canciones con


estado de ánimo
género bachata tristeza y género
bachata

ningun tipo de música


lista canciones con
estado de ánimo
tristeza, género bachata
y tipo de música actual
tipo de música elegido
actual
2.2 Base de conocimiento

RC1:
SI
Estado de ánimo Tristeza
Género de música Ninguno
Tipo de música Ninguno
ENTONCES
Lista de canciones Lista de
canciones con el
estado de ánimo
tristeza

RC2:
SI
Lista de canciones Con el estado de
ánimo elegido
Género de música Elige el usuario
Tipo de música Ninguno
ENTONCES
Lista de canciones Lista de
canciones con el
estado de ánimo y
genero elegido

RC3:
SI
Lista de canciones Estado de ánimo
y genero elegido
Género de música Elegido el
usuario
Tipo de música Elegido el
usuario
ENTONCES
Lista de canciones estado de ánimo,
género y tipo de
música elegido
2.3 Proceso de inferencia
1)
¿“Estado de ánimo tristeza” es un hecho? …. Si
¿“Género de música ninguno” es un hecho? …. Si
¿“Tipo música ninguno” es un hecho? …. Si
= >RC1 se puede disparar
¿“Estado de ánimo tristeza” es un hecho? …. No
= >RC2 no se puede disparar
RC1 se dispara
=> Cuando se dispara RC1 se genera un hecho “lista de canciones con estado de
tristeza”, es la meta, no. Entonces retorna a 1
2)
¿“lista de canciones con estado tristeza” es un hecho? … Si
¿“Género de música bachata” es un hecho? …. Si
¿“Tipo música ninguna” es un hecho? …. Si
= >RC2 se puede disparar
¿“lista canciones con estado de ánimo tristeza y género bachata”? …No
= >RC3 no se puede disparar
Cuando se dispara RC2 se genera un hecho “lista canciones con estado de ánimo
tristeza y género bachata”, es la meta, no. Entonces retorna a 2
3)
¿“lista canciones con estado de ánimo tristeza y género bachata” es un hecho?…Si
¿“Género de música bachata” es un hecho? …. Si
¿“Tipo música si” es un hecho? …. Si
= > RC3 se puede disparar
Cuando se dispara RC3 se genera un hecho “lista canciones con estado de ánimo
tristeza, género bachata y tipo de música actual”, es la meta, sí. Entonces finaliza

2.4 Aplicación en clips

Reglas del Negocio en Clips:


(defrule lista-canciones-tristes ;Regla de Conocimiento 01
(estado triste)
=>
(assert(lista-canciones tristes))
)
(defrule lista-canciones-feliz ;Regla de Conocimiento EA 01
(estado feliz)
=>
(assert(lista-canciones feliz))
)
(defrule lista-canciones-serias ;Regla de Conocimiento EA 01
(estado serio)
=>
(assert(lista-canciones serias ))
)
(defrule lista-canciones-suaves ;Regla de Conocimiento EA 01
(estado calmado)
=>
(assert(lista-canciones suaves))
)
(defrule lista-canciones-aburridas ;Regla de Conocimiento EA 01
(estado aburrido)
=>
(assert(lista-canciones aburridas))
)

(defrule lista-canciones-optimas ;Regla de Conocimiento EA 01


(estado optimas)
=>
(assert(lista-canciones optimas))
)

;GENERO DE CANCIONES REGLA N02


(defrule lista-canciones-con-genero-bachata ;Regla de Conocimiento 02
(lista-canciones tristes)
(gusta bachata)
=>
(assert(lista-canciones con genero bachata))
)
(defrule lista-canciones-con-genero-reggae ;Regla de Conocimiento 02
(lista-canciones feliz)
(gusta reggae)
=>
(assert(lista-canciones con genero reggae))
)
(defrule lista-canciones-con-genero-rock ;Regla de Conocimiento 02
(lista-canciones serias)
(gusta rock)
=>
(assert(lista-canciones con genero rock))
)
(defrule lista-canciones-con-genero-salsa ;Regla de Conocimiento 02
(lista-canciones suaves)
(gusta salsa)
=>
(assert(lista-canciones con genero salsa))
)
(defrule lista-canciones-con-genero-electronica;Regla de Conocimiento 02
(lista-canciones aburridas)
(gusta electronica)
=>
(assert(lista-canciones con genero electronica))
)
(defrule lista-canciones-con-genero-pop ;Regla de Conocimiento 02
(lista-canciones optimas)
(gusta pop)
=>
(assert(lista-canciones con genero pop))
)

; LISTA CANCIONES SEGUN ESTADO DE ANIMO CON GENERO N03


(defrule lista-canciones-con-genero-bachata-actuales ;Regla de Conocimiento 02
(musica actual)
(lista-canciones con genero bachata)
=>
(assert(lista-canciones con genero bachata actuales))
)
(defrule lista-canciones-con-genero-reggae-actuales ;Regla de Conocimiento 02
(musica actual)
(lista-canciones con genero reggae)
=>
(assert(lista-canciones con genero reggae actuales))
)
(defrule lista-canciones-con-genero-rock-actuales ;Regla de Conocimiento 02
(lista-canciones con genero rock)
(musica actual)
=>
(assert(lista-canciones con genero rock actuales))
)
(defrule lista-canciones-con-genero-salsa-actuales ;Regla de Conocimiento 02
(lista-canciones con genero salsa)
(musica actual)
=>
(assert(lista-canciones con genero salsa-actuales))
)
(defrule lista-canciones-con-genero-electronica-actuales;Regla de Conocimiento 02
(musica actual)
(lista-canciones con genero electronica)
=>
(assert(lista-canciones con genero electronica actuales))
)
(defrule lista-canciones-con-genero-pop-actuales ;Regla de Conocimiento 02
(lista-canciones con genero electronica)
(musica actual)
=>
(assert(lista-canciones con genero pop))
)