F. J. Martn Mateos
J. L. Ruiz Reina
Dpto. Ciencias de la Computaci
on e Inteligencia Artificial
Universidad de Sevilla
Contenidos
Introduccion
Gramaticas independientes del contexto
Gramaticas de clausulas definidas
Gramaticas probabilsticas
Modelos probabilsticos: n-gramas
Recuperacion de la informacion
Clasificaci
on de documentos
Seccion 1
Seccion 1
Introduccion
Introduccion
Introduccion
Seccion 2
Seccion 2
Gramaticas independientes del contexto
VP
PP
DT
N
V
P
= NP VP
= DT N
|N
|NP PP
= V NP
|V
|VP PP
= P NP
|P
= el | los
= hombre | amigos | caf
e | leche
= toma | toman
= con | solo
Ejemplo
S =
=
=
=
=
=
=
=
NP
DT
el
el
el
el
el
el
VP
N VP
N VP
hombre
hombre
hombre
hombre
hombre
VP
V NP
toma NP
toma N
toma caf
e
VP
NP
DT
NP
el
hombre
toma
caf
e
Seccion 3
Seccion 3
Gramaticas de clausulas definidas
--> sintagma_nominal(N),
verbo(N),
complemento.
complemento
--> [].
complemento
--> sintagma_nominal(N).
sintagma_nominal(N) --> nombre(G,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)}.
Lexico
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).
-->
-->
-->
-->
-->
-->
-->
par(0).
par(s(s(N))) :- par(N).
Analisis semantico
Analisis semantico
Semantica composicional
Hipotesis composicional: el significado de una categora
sintactica se obtiene a partir del significado de las
subcategoras que lo componen
Esta hipotesis no siempre es cierta, pero simplifica el analisis
semantico
Pasando parte del trabajo a la fase de eliminaci
on de
ambig
uedades
oracion
alto(juan)
sn
sv
juan
lambda(x,alto(x))
verbo
juan
juan
atributo
lambda(x,alto(x))
es
adjetivo
lambda(x,alto(x))
alto
Inteligencia Artificial II 20122013
Extraccion de significado
En lugar de tener una lambda como significado, en la GCD
tenemos como argumentos separados sus componentes: en
este caso, uno para la variable y otro para el cuerpo
--> sintagma_nominal(SSN),
sintagma_verbal(SSN,SSV).
sintagma_nominal(SNP) --> nombre_propio(SNP).
sintagma_verbal(X,SA) --> verbo_cop,atributo(X,SA).
atributo(X,SA)
--> adjetivo(X,SA).
verbo_cop
--> [es].
nombre_propio(juan)
--> [juan].
nombre_propio(pedro) --> [pedro].
adjetivo(X,alto(X))
--> [alto].
adjetivo(X,bajo(X))
--> [bajo].
--> sujeto(SS),
sintagma_verbal(SS,SSV).
sujeto(SNP)
--> nombre_propio(SNP).
sintagma_nominal(SN)
--> nombre(SN).
sintagma_verbal(X,SV)
--> verbo_trans(X,SN,SV),
sintagma_nominal(SN).
verbo_trans(X,Y,come(X,Y)) --> [come].
verbo_trans(X,Y,bebe(X,Y)) --> [bebe].
nombre_propio(juan)
--> [juan].
nombre_propio(pedro)
--> [pedro].
nombre(pan)
--> [pan].
nombre(agua)
--> [agua].
Ejemplo de sesi
on
?- phrase(oraci
on(S),[pedro,come,pan]).
S = come(pedro, pan)
-->
-->
-->
-->
-->
[pan].
[pescado].
[carne].
[dinero].
[coche].
nombre_propiedad(X,hombre(X))
nombre_propiedad(X,carpintero(X))
nombre_propiedad(X,inform
atico(X))
nombre_propiedad(X,andaluz(X))
nombre_propiedad(X,franc
es(X))
nombre_propiedad(X,europeo(X))
-->
-->
-->
-->
-->
-->
[hombre].
[carpintero].
[inform
atico].
[andaluz].
[frances].
[europeo].
Sesion
?- phrase(oraci
on(S),[todo,andaluz,come,pescado]).
S = para_todo(X, andaluz(X) => come(X, pescado))
?- phrase(oraci
on(S),[alg
un,inform
atico,tiene,dinero]).
S = existe(X, inform
atico(X) y tiene(X, dinero))
?- phrase(oraci
on(S),[alg
un,inform
atico,es,andaluz]).
S = existe(X, inform
atico(X) y andaluz(X))
Esta sesi
on corresponde a un programa Prolog que usa una
GCD para el analisis semantico y SLD-resoluci
on para la
deducci
on.
Inteligencia Artificial II 20122013
Seccion 4
Seccion 4
Gramaticas probabilsticas
Gramaticas probabilsticas
Ejemplo
S
NP
VP
PP
DT
N
V
P
= NP VP
1,0
= DT N
0,4
|N
0,2
|NP PP
0,4
= V NP
0,5
|V
0,2
|VP PP
0,3
= P NP
0,8
|P
0,2
= el | los
0,50 c.u.
= hombre | amigos | caf
e | leche 0,25 c.u.
= toma | toman
0,50 c.u.
= con | solo
0,50 c.u.
Gramaticas probabilsticas
Ejemplo
S1,0
NP0,4
DT0,5
el
N0,25
S1,0
NP0,4
VP0,5
V0,5
hombre toma
NP0,4
NP0,2
PP0,2
N0,25
P0,5
caf
e
solo
DT0,5
el
VP0,3
VP0,5
N0,25
PP0,2
hombre V0,5
NP0,2
P0,5
toma
N0,25
solo
caf
e
Gramaticas probabilsticas
Ventajas
Dan una idea probabilstica de lo buena que es una derivaci
on
sintactica de una frase, permitiendo decidir ante una
ambig
uedad
Las reglas probabilsticas se pueden aprender a partir de un
conjunto de ejemplos correctamente formado
Inconvenientes
La probabilidad de una frase depende u
nicamente de la
derivaci
on sintactica y no tiene en cuenta el contexto lexico:
La frase el amigos toma hombre tiene la misma
probabilidad que el hombre toma caf
e
Las frases cortas tienen mayor probabilidad que las largas
Seccion 5
Seccion 5
Modelos n-gram
Modelos n-gram
Modelo unigram: Se asume independencia entre palabras
consecutivas
Y
N(wi )
P(w1 ... wn ) =
P(wi ) con P(wi ) =
N
i
Donde N(wi ) es el n
umero de ocurrencias de la palabra wi en
el corpus y N es el n
umero total de palabras (incluyendo
repeticiones)
Modelo bigram: Se asume dependencia entre una palabra y la
anterior, pero independencia con las demas
Y
N(wi wj )
P(w1 ... wn ) = P(w1 )
P(wi+1 |wi ) con P(wj |wi ) =
N(wi )
i
Donde N(wi wj ) es el n
umero de ocurrencias de la secuencia
(bigram) wi wj en el corpus
Un bigram esta formado por dos palabras consecutivas en el
corpus
Inteligencia Artificial II 20122013
Modelos n-gram
Modelo trigram: Se asume dependencia entre una palabra y
las dos anteriores, pero independencia incondicional con las
demas
Y
P(w1 ... wn ) = P(w1 )P(w2 |w1 )
P(wi+2 |wi+1 , wi )
i
Ejemplo:
Supongamos el siguiente texto sin espacios en blanco
Esf
acilleerfrasessinespaciosenblanco
El objetivo es obtener la frase original con un cierto grado de
confianza en que as lo es
Es f
acil leer frases sin espacios en blanco
Algoritmo de segmentacion
Algoritmo de segmentacion
1. Sean N = LONGITUD(TEXTO),
PALABRAS un vector vac
o de longitud N+1,
MEJOR un vector de longitud N+1 inicializado a 0 y
MEJOR[0] = 1
2. Para cada I desde 0 a N
2.1. Para cada J desde 0 a I-1
2.1.1. Sea PALABRA = TEXTO[J+1,I]
2.1.2. Si P[PALABRA] * MEJOR[J] >= MEJOR[I] entonces
2.1.2.1. Sea MEJOR[I] = P[PALABRA] * MEJOR[J]
2.1.2.2. Sea PALABRAS[I] = PALABRA
3. Sea SALIDA una cadena vac
a e I = N
4. Mientras I > 0 hacer
4.1. SALIDA = + PALABRAS[I] + SALIDA
4.2. I = I - LONGITUD(PALABRAS[I])
5. Devolver SALIDA
Algoritmo de segmentacion
Interpretaci
on de los vectores auxiliares
El vector PALABRAS almacena en cada posicion I la mejor
palabra que se ha encontrado terminando en la posicion I del
texto de entrada
El vector MEJOR almacena en cada posicion I la probabilidad
de la mejor segmentaci
on del texto de entrada hasta la
posicion I
Algoritmo de segmentacion
Interpretaci
on de la doble iteracion (punto 2 del algoritmo)
El algoritmo considera cualquier subcadena del texto de
entrada para ver con que grado de probabilidad dicha
subcadena es una palabra completa
A continuacion se calcula la probabilidad de la mejor
segmentacion del texto de entrada hasta la posicion I en la
que la u
ltima palabra es la subcadena considerada
De todas las posibilidades se queda con la mejor, que es
almacenada en la posicion I-esima de los vectores PALABRAS
y MEJOR
Algoritmo de segmentacion
I = 5, J = 0: PALABRA = "lacad"
P["lacad"] = 0
MEJOR[5] = 0
PALABRAS[5] = "lacad"
I = 5, J = 1: PALABRA = "acad"
P["acad"] = 1.1e-6
1.1e-6 * 53.2e-6 = 0.00005852e-6
I = 5, J = 2: PALABRA = "cad"
P["cad"] = 0.6e-6
0.6e-6 * 32072.3e-6 = 0.01924e-6
MEJOR[5] = 0.01924e-6
PALABRAS[5] = "cad"
I = 5, J = 3: PALABRA = "ad"
P["ad"] = 7.9e-6
7.9e-6 * 4.429e-6 = 0.00003499e-6
I = 5, J = 4: PALABRA = "d"
P["d"] = 139.2e-6
139.2e-6 * 3.0e-6 = 0.0004176e-6
La mejor segmentaci
on hasta la quinta letra del texto de
entrada es: la cad
I = 6, J = 0: PALABRA = "lacade"
P["lacade"] = 0
MEJOR[6] = 0
PALABRAS[6] = "lacade"
I = 6, J = 1: PALABRA = "acade"
P["acade"] = 0
I = 6, J = 2: PALABRA = "cade"
P["cade"] = 0.5e-6
0.5e-6 * 32072.3e-6 = 0.0001604e-6
MEJOR[6] = 0.0001604e-6
PALABRAS[6] = "cade"
I = 6, J = 3: PALABRA = "ade"
P["ade"] = 0.7e-6
0.7e-6 * 4.429e-6 = 0.0000031003e-6
I = 6, J = 4: PALABRA = "de"
P["de"] = 50999.7e-6
50999.7e-6 * 3.0e-6 = 0.153e-6
MEJOR[6] = 0.153e-6
PALABRAS[6] = "de"
I = 6, J = 5: PALABRA = "e"
P["e"] = 644.2e-6
644.2e-6 * 0.01924e-6 = 0.00001239e-6
La mejor segmentaci
on hasta la sexta letra del texto de
entrada es: laca de
La mejor segmentaci
on hasta la septima letra del texto de
entrada es: la cad en
La mejor segmentaci
on hasta la octava letra del texto de
entrada es: la cadena
Algoritmo de segmentacion
Observaciones
La segmentaci
on mas probable de elundecimo es
el un decimo
El algoritmo da preferencia a palabras peque
nas (mas
frecuentes) frente a palabras grandes (menos frecuentes)
El modelo unigram no tiene en cuenta relaciones contextuales
lexicas por lo que el algoritmo considerara como mas probables
algunas segmentaciones sin sentido
Ejemplo:
Supongamos el siguiente texto sin etiquetar
el hombre toma caf
e con leche
El objetivo es asignar a cada palabra una categora sintactica
coherente con la estructura de la frase
el/LD hombre/NN toma/VIP caf
e/NN con/E
leche/NN
Etiquetado sintactico
Consideremos un modelo bigram de un corpus P previamente
etiquetado
Dado un texto de n palabras w1,n = w1 w2 ... wn
Un etiquetado de este texto es una secuencia de etiquetas
t1,n = t1 t2 ...tn en la que cada ti es la etiqueta asociada a la
palabra wi
t1,n
Etiquetado sintactico
n
Y
i=1
P(wi |t1,n ) =
n
Y
P(wi |ti )
i=1
Etiquetado sintactico
Finalmente, el objetivo consiste en encontrar el etiquetado t1,n
que maximiza la expresi
on
n
Y
argmax
P(ti |ti1 )P(wi |ti )
t1,n
i=1
Seccion 6
Seccion 6
Recuperacion de la informacion
Recuperacion de la informacion
Documentos:
D1 : Cargamento de oro da
nado por el fuego
D2 : La entrega de la plata llego en el camion color plata
D3 : El cargamento de oro llego en un camion
tft,1
tft,2
tft,3
dft
N/dft
idft
~1
W
~2
W
~3
W
lleg
o
da
nado
entrega
fuego
oro
plata
cargamento
cami
on
color
0
1
0
1
1
0
1
0
0
1
0
1
0
0
2
0
1
1
1
0
0
0
1
0
1
1
0
2
1
1
1
2
1
2
2
1
1.5
3
3
3
1.5
3
1.5
1.5
3
0.1761
0.4771
0.4771
0.4771
0.1761
0.4771
0.1761
0.1761
0.4771
0
0.4771
0
0.4771
0.1761
0
0.1761
0
0
0.1761
0
0.4771
0
0
0.9542
0
0.1761
0.4771
0.1761
0
0
0
0.1761
0
0.1761
0.1761
0
Ejemplos:
PageRank de Google
HITS (Hyperlink-Induced Topic Search)
PageRank
La relevancia de una pagina web no puede estar basada
u
nicamente en sus tf , debe tenerse en cuenta tambien el
n
umero de enlaces que apuntan a la pagina:
Pero no todos los enlaces deben pesar igual, sino que deben
contar mas aquellos enlaces desde paginas de mayor relevancia
Definici
on (recursiva):
PR(p) =
X PR(ini )
1d
+d
N
C (ini )
i
PageRank
HITS
Calculo de relevancia basado en dos valoraciones: autoridad
(authority) y centro (hub).
Una pagina es autoridad en una materia si es una fuente
importante de informacion (y por tanto esta enlazada desde
muchas otras)
Una pagina es un centro en la materia si tiene una buena
coleccion de enlaces a autoridades en la materia.
Definici
on de los ndices de autoridad (a) y centro (h):
h(v ) =
a(y )
v 7y
a(v ) =
h(y )
y 7v
Definici
on mutuamente recursiva, cuya solucion se tienen
mediante el calculo de autovectores
Inteligencia Artificial II 20122013
Seccion 7
Seccion 7
Clasificaci
on de documentos
Clasificacion de documentos
Eleccion de k:
Usualmente, basandonos en alg
un conocimiento especfico
sobre el problema de clasificacion
Tambien como resultado de pruebas en conjuntos mas
peque
nos
Preferiblemente impar, para intentar evitar empates (k=5, por
ejemplo)
cC
1knd
1knd
Tc,t + 1
Tc,t + 1
=P
sV (Tc,s + 1)
sV Tc,s + |V |
EntrenaNB(C,D)
1. Sea V igual al vocabulario que se extrae del conjunto de
entrenamiento D, y N el n
umero de documentos de D
2. Para cada categor
a c en C, hacer:
2.1 Sea Nc el n
umero de documentos en la clase c y
prior[c]=Nc/N
2.2 Sea Texto c la concatenaci
on de todos los documentos
de la clase c
umero de ocurrencias
2.3 Para cada t en V sea T tc el n
de t en Texto c
2.4 Para cada t en V sea condprob[t,c] el resultado de
dividir T tc+1 entre la suma de todos los (T sc+1),
con s en V
3. Devolver V, y las matrices prior y condprob
ClasificaNB(C,V,prior, condprob, d)
1. Sea W el conjunto de t
erminos de V que aparecen en d
2. Para cada clase c en C, hacer:
2.1 Inicializar score[c] con log(prior[c])
2.2 Para cada t
ermino t en W, acumular en score[c]
la cantidad log(condprob[t,c])
3. Devolver la clase c para la que score[c] sea m
aximo
argmax
y {spam.ham}
1in
H
S
, P(Y = ham) =
S +H
S +H
Hx
Sx
, P(x|Y = ham) =
S
H
donde Sx es el n
umero de correos SPAM del conjunto de
entrenamiento que tiene la caracterstica X = x y Hx es el
n
umero de correos HAM del conjunto de entrenamiento con la
caracterstica X = x
Estas estimaciones suelen suavizarse
Inteligencia Artificial II 20122013
Bibliografa