Anda di halaman 1dari 92

Procesamiento del lenguaje natural

F. J. Martn Mateos
J. L. Ruiz Reina
Dpto. Ciencias de la Computaci
on e Inteligencia Artificial
Universidad de Sevilla

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Contenidos

Introduccion
Gramaticas independientes del contexto
Gramaticas de clausulas definidas
Gramaticas probabilsticas
Modelos probabilsticos: n-gramas
Recuperacion de la informacion
Clasificaci
on de documentos

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Seccion 1

Seccion 1
Introduccion

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Introduccion

El Procesamiento del Lenguaje Natural es una disciplina de la


Inteligencia Artificial que se ocupa de la formulaci
on e
investigacion de mecanismos computacionales para la
comunicacion entre personas y maquinas mediante el uso de
Lenguajes Naturales
Los Lenguajes Naturales son los utilizados en la comunicacion
humana, ya sean escritos, hablados o signados

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Introduccion

Aplicaciones del Procesamiento del Lenguaje Natural:


Comprensi
on del lenguaje
Recuperaci
on de la informacion
Extracci
on de la informacion
B
usqueda de respuestas
Generaci
on de discurso
Traducci
on automatica
Reconstruccion de discurso
Reconocimiento del habla
Sntesis de voz
...

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Fases de la comunicacion (R&N)

Intencion: A quiere transmitir la proposicion P a B


Generaci
on: A transforma P en la frase W
Sntesis: A enva W a B (donde W es la realizaci
on fsica de
W)
Percepci
on: B percibe W como la realizaci
on fsica W y lo
decodifica como la frase W2
Analisis: B infiere que W2 puede tener como posibles
significados P1 , . . . , Pn
Resolucion de ambig
uedades: B decide que Pi es el significado
mas probable de entre los posibles
Incorporacion: B decide si cree o no la proposicion Pi

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Analisis del lenguaje

Se analiza la estructura del lenguaje a cuatro niveles


Analisis morfol
ogico: El analisis de las palabras para extraer
races, rasgos flexivos, unidades lexicas compuestas y otros
fen
omenos
Analisis sintactico. El analisis de la estructura sintactica de la
frase mediante una gramatica de la lengua en cuestion
Analisis semantico. La extracci
on del significado (o posibles
significados) de la frase
Analisis pragmatico. El analisis de los significados mas alla de
los lmites de la frase, por ejemplo, para determinar los
antecedentes referenciales de los pronombres

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Tecnicas de analisis del lenguaje

Las distintas fases y problematicas del analisis del lenguaje se


afrontan principalmente con las siguientes tecnicas
Tecnicas ling
usticas formales: Se basan en el desarrollo de
reglas estructurales que se aplican en las fases de analisis del
lenguaje
Tecnicas probabilsticas: Se basan en el estudio en base a un
conjunto de textos de referencia (corpus) de caractersticas de
tipo probabilstico asociadas a las distintas fases de analisis del
lenguaje

Modelos para el procesamiento del lenguaje natural


Logicos (gramaticas)
Probabilsticos (basados en corpus)

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Seccion 2

Seccion 2
Gramaticas independientes del contexto

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Gramaticas independientes de contexto


Una gramatica independiente de contexto esta formada por:
Un conjunto de smbolos terminales T (las palabras)
Un conjunto de smbolos no terminales N (los constituyentes o
categoras sintacticas)
Un smbolo no terminal inicial S
Un conjunto de reglas de produccion, que indican las maneras
en que se puede derivar una oracion valida a partir del smbolo
inicial
Estas reglas son de la forma N = W , donde N N y
W (N T )

Usualmente, para describir una gramatica, solo se


proporcionan las reglas
Los smbolos no terminales se escriben en may
usculas y son los
u
nicos que pueden aparecer en el lado izquierdo de las reglas
Los smbolos terminales se escriben en min
usculas
El smbolo inicial es siempre el mismo: S

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Gramaticas independientes de contexto


Ejemplo
S
NP

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Gramaticas independientes de contexto

Utilizando las reglas de la gramatica, podemos derivar


oraciones
Una regla se aplica sustituyendo el smbolo que aparece en la
parte izquierda por los que aparecen en su parte derecha
Una derivaci
on es la aplicaci
on sucesiva de reglas hasta
obtener una expresi
on que s
olo contiene smbolos terminales

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Gramaticas independientes de contexto

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

Podemos abreviar la derivacion de la siguiente forma:


S = el hombre toma caf
e

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Gramaticas independientes de contexto


La forma en que se ha realizado la derivacion se puede
capturar con un arbol de derivacion sintactica
Ejemplo:

VP

NP

DT

NP

el

hombre

toma

caf
e

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Gramaticas independientes de contexto

El lenguaje generado por una gramatica G es el conjunto de


frases s para las que existe una derivacion:
L(G) = {s T |S = s}
Formas de utilizar una gramatica:
Para generar texto
Para analizar texto (parsing), obteniendo el arbol sintactico

Existen numerosos algoritmos de parsing eficientes


(compiladores)
Las gramaticas independientes del contexto son muy u
tiles
para procesar lenguajes formales (con pocos smbolos
terminales y pocas reglas)

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Limitaciones de la gramaticas independientes de contexto


Los lenguajes naturales son mucho mas expresivos que los
lenguajes descritos por gramaticas independientes de contexto
Concordancia morfol
ogica: genero, n
umero, tiempos verbales,
pronombres. Por ejemplo, S = el amigos toma caf
e
Por ejemplo, deberamos tener un conjunto de reglas para
frases en plural y otro para frases en singular.
El n
umero de reglas aumenta exponencialmente si se quieren
tener en cuenta todas las concordancias

Otro problema: ambig


uedades sintactica y semantica
La misma frase tiene distintos arboles de derivaci
on sintactica,
toma
aunque solo uno de ellos es correcto a nivel semantico: El
cafe con leche
La misma frase tiene distintos arboles de derivaci
on sintactica,
toma cafe solo
y ambas son correctas a nivel semantico: El

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Seccion 3

Seccion 3
Gramaticas de clausulas definidas

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Aumentando la capacidad expresiva: GCDs


Una gramatica de clausulas definidas (GCD) es similar a una
gramatica independiente de contexto, pero considera que los
smbolos no terminales son smbolos de predicados
Y por tanto pueden llevar argumentos.
Estos argumentos se pueden utilizar para implementar
concordancia morfol
ogica o extracci
on de significado, entre
otras aplicaciones.

GCD con concordancia de genero y numero


oracion

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Notacion en las gramaticas de clausulas definidas

Frases: listas de palabras.


Ejemplo: [la,profesora,lee,un,libro]
Smbolos no terminales: smbolos de predicado
Variables en los argumentos: may
usculas o mudas
Smbolos terminales: listas unitarias.
Ejemplo: [el]
Colocamos entre llaves cualquier llamada a predicados
externos a la gramatica.
Ejemplo: {es_verbo(P,N)}

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Definiendo el lexico de la gramatica del ejemplo


Las llamadas externas pueden servir, entre otras cosas, para
separar el lexico de las reglas sintacticas. Basta con incluir los
siguientes hechos:

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Reglas GCD como reglas en logica de primer orden


Cada regla de la gramatica se puede convertir a una regla
logica (clausula definida) en la que cada smbolo no terminal
se corresponde con un predicado con los mismos argumentos
mas un argumento adicional que representa la sublista de
palabras que se analiza seg
un la categora gramatical que
representa el smbolo.
Ejemplo: la regla
sintagma_nominal(N) --> determinante(G,N),nombre(G,N).

se traduce a la regla logica:


determinante(G,N,S1) nombre(G,N,S2)
sintagma_nominal(N,S1@S2)

(aqu @ representa concatenaci


on)

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Reglas GCD como reglas en logica de primer orden

Para las reglas correspondientes a smbolos terminales, la


traducci
on es algo distinta.
Ejemplo: la regla
nombre(G,N) --> [P],{es_nombre(P,G,N)}.

se traduce a la regla logica:


es_nombre(P,G,N) nombre(G,N,[P])

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Gramaticas de clausulas definidas y SLD-resolucion


Con esa visi
on de una GCD como un conjunto de reglas, el
analizar sintacticamente seg
un una GCD puede reducirse a
deducir usando SLD-resoluci
on
Las GCDs surgen como una extensi
on al lenguaje Prolog
De hecho, se pueden escribir tal cual en cualquier interprete
de Prolog, y de esa manera se tiene directamente un
analizador sintactico, usando el predicado phrase (y
considerando que las frases como listas de palabras):
?- phrase(oraci
on,[la,profesora,lee,un,libro]).
Yes
?- phrase(oraci
on,[las,profesores,lee,los,libro]).
No

Incluso tenemos un generador de frases del lenguaje:


?- phrase(oraci
on,L).
L=[la,profesora,lee,un,libro];
....
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Lenguajes expresables por GCDs

Incluso en lenguajes formales, GCDs son mas expresivas que


GIC.
GCD que define el lenguaje L = {a2n b2n c2n : n N}, no
expresable con una GIC:

GCD para el lenguaje L = {a2n b2n c2n : n N}


palabra
a(0)
a(s(N))
b(0)
b(s(N))
c(0)
c(s(N))

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

a(N), b(N), c(N), {par(N)}.


[].
[a],a(N).
[].
[b],b(N).
[].
[c],c(N).

par(0).
par(s(s(N))) :- par(N).

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Analisis semantico

Como representar el significado de una frase?


En general, se trata de expresarlo mediante alg
un lenguaje
formal
Esto permite que una maquina pueda realizar las acciones
adecuadas al mensaje emitido (almacenar informacion,
responder preguntas razonadamente,. . . )
En nuestro caso, usaremos la logica de primer orden como
lenguaje de representaci
on
Podramos usar cualquier otro formalismo de representaci
on

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Analisis semantico

Ejemplos de significados asignados a frases:


Juan es alto:
alto(juan)
Pedro bebe agua:
bebe(pedro, agua)
Todo hombre tiene alma:
x[hombre(x) tiene(x, alma)]
Alg
un hombre tiene dinero:
x[hombre(x) tiene(x, dinero)]
Todo hombre que no come pan no tiene dinero:
x[(hombre(x) come(x, pan)) tiene(x, dinero)]

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Un caso simple de construccion de significado

Cual es el significado de la frase Juan es alto?


Significado de Juan: el termino (constante) juan
Significado de es: es solo un nexo de union del sujeto con el
adjetivo que lo califica (no aporta significado)
Significado de alto: predicado unario alto que expresa una
propiedad sobre alguien; puede verse como una funci
on tal que
dado un sujeto, devuelve la afirmacion de que dicho sujeto es
alto; dicha funci
on se representa usualmente por x.alto(x)
El significado de la frase completa se obtiene aplicando el
significado del sintagma verbal al significado del sintagma
nominal: (x.alto(x))(juan) = alto(juan)

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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

Procesamiento del lenguaje natural

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

GCD para extraccion de significado


oraci
on(SSV)

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

El mecanismo de unificacion sirve para componer el


resultado
?- phrase(oraci
on(S),[juan,es,alto]).
S = alto(juan)

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Frases con verbos transitivos


Significado de un verbo transitivo: predicado que relaciona el
sujeto con el objeto directo. Por ejemplo, el significado del
verbo come es la funci
on x.y .come(x, y )

GCD para frases con verbos transitivos


oraci
on(SSV)

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Frases con determinantes todo y alg


un
En la logica de primer orden, estos determinantes se
corresponden con los cuantificadores universal y existencial
Ejemplos:
Todo andaluz come pescado:
x[andaluz(x) come(x, pescado)]
Alg
un informatico tiene dinero:
x[informatico(x) tiene(x, dinero)]

En la GCD que veremos a continuaci


on se define su
significado as:
determinante(X,Prop,SSV,existe(X, Prop y SSV))
--> [alg
un].
determinante(X,Prop,SSV,para_todo(X, Prop => SSV)) --> [todo].

El significado de estos determinantes es un esqueleto de


formula logica, que se ira concretando a medida que se analice
la frase.
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Frases con determinantes todo y alg


un

GCD para frases con determinantes todo y alg


un
:-op(600,xfy,=>).
:-op(900,xfy,y).
oraci
on(S) --> sujeto_det(X,SSV,S), sintagma_verbal(X,SSV).
sujeto_det(X,SSV,S) --> determinante(X,Prop,SSV,S),
nombre_propiedad(X,Prop).
determinante(X,Prop,SSV,existe(X, Prop y SSV))
--> [alg
un].
determinante(X,Prop,SSV,para_todo(X, Prop => SSV)) --> [todo].
objeto_directo(SN) --> nombre(SN).
sintagma_verbal(X,SV) --> verbo_trans(X,SN,SV),
objeto_directo(SN).
sintagma_verbal(X,SV) --> verbo_cop,nombre_propiedad(X,SV).

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Frases con determinantes todo y alg


un

GCD para frases con determinantes todo y alg


un
verbo_trans(X,Y,tiene(X,Y)) --> [tiene].
verbo_trans(X,Y,come(X,Y)) --> [come].
verbo_cop --> [es].
nombre(pan)
nombre(pescado)
nombre(carne)
nombre(dinero)
nombre(coche)

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

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

Inteligencia Artificial II 20122013

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

[hombre].
[carpintero].
[inform
atico].
[andaluz].
[frances].
[europeo].

Procesamiento del lenguaje natural

Frases con determinantes todo y alg


un

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Aplicacion: razonamiento y lenguaje natural


Mantenimiento y consultas de una base de conocimiento
usando lenguaje natural
El conocimiento se aserta en lenguaje natural (y es incluido en
lenguaje formal)
La respuesta a una consulta se da en lenguaje natural y puede
implicar deducir informacion a partir de lo afirmado
anteriormente
Cada frase en la comunicaci
on hombre-maquina es analizada
semanticamente:
Del humano hacia la maquina: lenguaje natural a lenguaje
formal
De la maquina hacia el humano: lenguaje formal a lenguaje
natural

El razonamiento lo realiza la maquina usando las expresiones


formales (con SLD-resoluci
on, por ejemplo)
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Aplicacion: razonamiento y lenguaje natural


Sesion con adici
on de informacion y con consultas:
?- 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

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

Procesamiento del lenguaje natural

Seccion 4

Seccion 4
Gramaticas probabilsticas

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Modelos probabilsticos del lenguaje


Un modelo probabilstico del lenguaje define una distribuci
on
de probabilidad sobre el conjunto de las cadenas de caracteres
o de palabras, a partir del analisis de un corpus
Un corpus es una coleccion grande de textos, escritos por y
para humanos
Es decir, cada frase tiene asociada una probabilidad y estas
probabilidades se aprenden a partir de un corpus o se calculan
a partir de las aprendidas
Los distintos modelos probabilsticos del lenguaje se
caracterizaran por las propiedades de independencia asumidas,
y la forma en la que se calcula la probabilidad de una frase
Ventajas:
Reflejan mejor la realidad del lenguaje y son mas robustos
Se aprenden a partir de textos
Resuelven ambig
uedades
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Un modelo probabilstico basado en gramaticas


Una gramatica independiente de contexto probabilstica es
igual a una gramatica independiente de contexto en la que
cada regla tiene asociada una probabilidad
La regla N = W 1 , . . . , W n tiene asociada la probabilidad
P(N = W 1 , . . . , W n |N)
La suma de las probabilidades asociadas a las reglas con un
mismo
smbolo no terminal en su parte izquierda es 1:
P
n
P(N
= Wj1 , . . . , Wj j |N) = 1
j

Estas gramaticas permiten calcular la probabilidad de una


derivacion sintactica a partir de las probabilidades de todas las
reglas que se han aplicado
La probabilidad de cada regla se aprende analizando
colecciones de textos (corpus)
De esta forma se intenta resolver la ambig
uedad sintactica:
tomese el arbol de derivaci
on mas probable

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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.

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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

Probabilidad del primer analisis: 0,000025


Probabilidad del segundo analisis: 0,0000187

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Seccion 5

Seccion 5
Modelos n-gram

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Modelos probabilsticos basados en n-grams


De manera general, dada una secuencia de palabras w1 ... wn ,
su probabilidad se podra calcula de la siguiente forma:
P(w1 ... wn ) = P(w1 )P(w2 |w1 ) P(wn |w1 , . . . , wn1 )
Intuitivamente, cada P(wi |w1 , . . . , wi1 ) es la probabilidad de
que (en el lenguaje modelado) aparezca la palabra wi a
continuaci
on de la secuencia w1 , . . . , wi1
Estas probabilidades se aprenden a partir de un corpus
Pero en la practica es imposible saber la probabilidad de cada
palabra condicionada a cada posible secuencia de palabras
anteriores.
Por esto, se toman determinadas suposiciones de
independencia que simplifican el modelo (a costa de perder
precisi
on)
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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

Procesamiento del lenguaje natural

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

Un trigram esta formado por tres palabras consecutivas en el


corpus

Modelo n-gram: Generalizaci


on de los modelos anteriores
Un n-gram esta formado por n palabras consecutivas en el
corpus

En estos modelos probabilsticos, salvo el unigram, se tienen


en cuenta relaciones contextuales lexicas, que no suelen
aparecer en los modelos gramaticales

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Generacion de frases con modelos n-gram


Para ilustrar las capacidades de los modelos n-gram, podemos
generar frases aleatorias siguiendo un muestreo a partir de
dichos modelos
Experimento: a partir el libro de texto de Russel& Norvig,
Artificial Intelligence: A Modern Approach, constuimos
modelos unigram, bigram y trigram.
Resultados generando secuencias de palabras en cada uno de
esos modelos:
Unigram: logical are as confusion a may right tries agent goal
the was ...
Bigram: systems are very similar computational approach
would be represented ...
Trigram: planning and scheduling are integrated the success of
naive bayes model ...

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Suavizado en modelos n-gram


En un modelo n-gram, la probabilidad de gran cantidad de las
n-secuencias de palabras sera nula
El n
umero total de n-secuencias de palabras es muy superior al
n
umero de n-secuencias que aparecen en el corpus

Esto hace que una secuencia de texto perfectamente valida


pueda tener probabilidad nula si alguna de sus n-secuencias
componentes nunca aparece en el corpus
Para evitar esto se utilizan tecnicas de suavizado
La tecnica de suavizado mas simple consiste en sumar 1 a los
numeradores de las probabilidades individuales y compensar la
suma total aumentando adecuadamente los denominadores
(Ley de Laplace)
Otra tecnica de suavizado consiste en realizar una combinacion
lineal de varios modelos probabilsticos

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Suavizado en modelos n-gram: ley de Laplace

Modelo unigram suavizado:


N(w ) + 1
N + V1
Donde V1 es el n
umero total de palabras distintas en el corpus
P(w ) =

Modelo bigram suavizado:


N(wi wj ) + 1
N(wi ) + V2
Donde V2 es el n
umero total de bigrams distintos en el corpus
P(wj |wi ) =

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Suavizado en modelos n-gram: interpolacion lineal


Es probable que un trigram w1 w2 w3 aparezca muy poco en
el corpus, pero que w2 w3 o w3 sean muy frecuentes
En esta situacion el modelo trigram proporciona una
probabilidad muy baja a la secuencia w1 w2 w3 , pero los
modelos bigram y unigram no

Una forma de suavizar el modelo trigram consiste en


combinarlo con los modelos bigram y unigram, de forma que:
P(w3 |w1 , w2 ) = 3 P3 (w3 |w1 , w2 ) + 2 P2 (w3 |w2 ) + 1 P1 (w3 )
Donde P1 es la probabilidad seg
un el modelo unigram, P2 es
la probabilidad seg
un el modelo bigram, P3 es la probabilidad
seg
un el modelo trigram y 1 + 2 + 3 = 1
De forma general se puede suavizar un modelo n-gram
combinandolo como modelos (n1)-gram, ..., bigram y
unigram
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Evaluacion de modelos n-gram


Como de bueno es el modelo probabilstico obtenido a partir
de un corpus?
Usualmente, separamos el corpus en dos partes: una para
entrenamiento y otra para tests
Una vez obtenido el modelo probabilstico a partir del corpus
de entrenamiento, evaluamos este calculando las
probabilidades que este asigna a las cadenas de texto del
corpus de prueba
Para evitar probabilidades demasiado peque
nas, se usa lo que
se conoce como perplejidad:
Perplejidad(frase) = 2log2 (P(frase))/N
donde N es el n
umero de palabras de la frase
Cuanto menor la perplejidad, mejor es el modelo

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Una aplicacion del modelo unigram: segmentacion

Problema: Determinar las palabras de un texto en el que no


hay espacios en blanco
Esta tarea es necesaria en la interpretaci
on de lenguajes que se
escriben sin espacios en blanco, como el Japones o el Chino

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

Este proceso se puede llevar a cabo facilmente con un modelo


unigram del lenguaje

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Una aplicacion del modelo unigram: segmentacion

Consideremos un modelo unigram de un corpus P


La probabilidad de cada palabra se calcula como la frecuencia
relativa de aparicion de dicha palabra en el corpus (estimador
de maxima verosimilitud)

Dado un texto sin espacios en blanco w de longitud n


Una segmentaci
on de w es una secuencia de palabras
l = w1 ... wk cuya concatenacion es igual a w
Notaremos por wil la i-esima palabra en la segmentacion l de w

El objetivo consiste en encontrar la segmentaci


on l con mayor
probabilidad
Y
argmax P(l) = argmax
P(wil )
l

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Algoritmo de segmentacion

Entrada: Una distribuci


on de probabilidad de palabras
obtenida a partir de un modelo unigram de un corpus P y una
cadena de texto
Salida: Una cadena de texto identica a la de entrada salvo por
la inclusi
on de espacios en blanco para separar palabras

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Algoritmo de segmentacion

Obtencion de la secuencia de salida


En la posicion N-esima del vector PALABRAS se encuentra la
u
ltima palabra de la mejor segmentaci
on del texto de entrada
Para determinar cual es la palabra anterior hay que acceder a
la posicion del vector PALABRAS que se obtiene restando de la
posicion actual el valor de la longitud de la u
ltima palabra
considerada
Todas las palabras de la mejor segmentaci
on obtenida se
concatenan para formar la salida

Observese que en MEJOR[N] esta almacenada la probabilidad


de la segmentaci
on obtenida

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Ejemplo del algoritmo de segmentacion


TEXTO = "lacadenaestarota"
MEJOR[0] = 1
I = 1, J = 0: PALABRA = "l"
P["l"] = 53.2e-6
MEJOR[1] = 53.2e-6
PALABRAS[1] = "l"
I = 2, J = 0: PALABRA = "la"
P["la"] = 32072.3e-6
MEJOR[2] = 32072.3e-6
PALABRAS[2] = "la"
I = 2, J = 1: PALABRA = "a"
P["a"] = 17230.6e-6
17230.6e-6 * 53.2e-6 = 0.917e-6
I = 3, J = 0: PALABRA = "lac"
P["lac"] = 0.2e-6
MEJOR[3] = 0.2e-6
PALABRAS[3] = "lac"
I = 3, J = 1: PALABRA = "ac"
P["ac"] = 2.1e-6
2.1e-6 * 53.2e-6 = 0.0001117e-6
I = 3, J = 2: PALABRA = "c"
P["c"] = 138.1e-6
138.1e-6 * 32072.3e-6 = 4.429e-6
MEJOR[3] = 4.429e-6
PALABRAS[3] = "c"
I = 4, J = 0: PALABRA = "laca"
P["laca"] = 3.0e-6
MEJOR[4] = 3.0e-6
PALABRAS[4] = "laca"
I = 4, J = 1: PALABRA = "aca"
P["aca"] = 0.6e-6
0.6e-6 * 53.2e-6 = 0.00003192e-6
I = 4, J = 2: PALABRA = "ca"
P["ca"] = 8.1e-6
8.1e-6 * 32072.3e-6 = 0.2598e-6
I = 4, J = 3: PALABRA = "a"
P["a"] = 17230.6e-6
17230.6e-6 * 4.429e-6 = 0.07631e-6

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Ejemplo del 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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Ejemplo del algoritmo de segmentacion

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Ejemplo del algoritmo de segmentacion

I = 7, J = 0: PALABRA = "lacaden" P["lacaden"] = 0


MEJOR[7] = 0
PALABRAS[7] = "lacaden"
I = 7, J = 1: PALABRA = "acaden"
P["acaden"] = 0
I = 7, J = 2: PALABRA = "caden"
P["caden"] = 0
I = 7, J = 3: PALABRA = "aden"
P["aden"] = 0
I = 7, J = 4: PALABRA = "den"
P["den"] = 15.3e-6
15.3e-6 * 3.0e-6 = 0.0000459e-6
MEJOR[7] = 0.0000459e-6
PALABRAS[7] = "den"
I = 7, J = 5: PALABRA = "en"
P["en"] = 22695.0e-6
22695.0e-6 * 0.6e-6 = 0.013617e-6
MEJOR[7] = 0.013617e-6
PALABRAS[7] = "en"
I = 7, J = 6: PALABRA = "n"
P["n"] = 59.9e-6
59.9e-6 * 0.153e-6 = 0.0000091647e-6

La mejor segmentaci
on hasta la septima letra del texto de
entrada es: la cad en

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Ejemplo del algoritmo de segmentacion

I = 8, J = 0: PALABRA = "lacadena" P["lacadena"] = 0


MEJOR[8] = 0
PALABRAS[8] = "lacadena"
I = 8, J = 1: PALABRA = "acadena" P["acadena"] = 0
I = 8, J = 2: PALABRA = "cadena"
P["cadena"] = 40.3e-6
40.3e-6 * 32072.3e-6 = 1.29251369e-6
MEJOR[8] = 1.29251369e-6
PALABRAS[8] = "cadena"
I = 8, J = 3: PALABRA = "adena"
P["adena"] = 0
I = 8, J = 4: PALABRA = "dena"
P["dena"] = 0.1e-6
0.1e-6 * 3.0e-6 = 0.0000003e-6
I = 8, J = 5: PALABRA = "ena"
P["ena"] = 0.3e-6
0.3e-6 * 0.01924e-6 = 0.000000005772e-6
I = 8, J = 6: PALABRA = "na"
P["na"] = 7.1e-6
7.1e-6 * 0.153e-6 = 0.0000010863e-6
I = 8, J = 7: PALABRA = "a"
P["a"] = 17230.6e-6
17230.6e-6 * 0.013617e-6 = 0.0002346290802e-6

La mejor segmentaci
on hasta la octava letra del texto de
entrada es: la cadena

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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

Un proceso similar se aplica a la identificaci


on de palabras en
reconocimiento del habla

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Una aplicacion del modelo bigram: etiquetado sintactico

Problema: Etiquetar cada palabra de un texto con la categora


sintactica que le corresponde
Este es un paso intermedio que permite eliminar ambig
uedades
lexicas antes del analisis sintactico

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

Este problema se puede resolver con un modelo bigram del


lenguaje

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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

El objetivo consiste en encontrar el etiquetado t1,n con mayor


probabilidad
argmax P(t1,n |w1,n ) = argmax
t1,n

t1,n

P(w1,n |t1,n )P(t1,n )


P(w1,n )

= argmax P(w1,n |t1,n )P(t1,n )


t1,n

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Etiquetado sintactico

En un modelo bigram, una palabra/etiqueta solo depende de


la anterior
n
Y
P(ti |ti1 )
P(t1,n ) =
i=1

Si asumimos independencia entre palabras consecutivas


condicionada a la secuencia de etiquetas y que una palabra
solo depende de la etiqueta que tiene asociada en el corpus,
entonces
P(w1,n |t1,n ) =

n
Y
i=1

Inteligencia Artificial II 20122013

P(wi |t1,n ) =

n
Y

P(wi |ti )

i=1

Procesamiento del lenguaje natural

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

Cada probabilidad condicionada P(t i |t j ) se estima con la


frecuencia de ocurrencia de las dos etiquetas consecutivas en el
corpus
N(t j t i )
P(t i |t j ) =
N(t j )
Cada probabilidad condicionada P(w |t) se estima como la
frecuencia con que una palabra tiene una determinada etiqueta
en el corpus
N(w /t)
P(w |t) =
N(t)

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Seccion 6

Seccion 6
Recuperacion de la informacion

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Recuperacion de la informacion

Problema: Dada una coleccion de documentos, encontrar


aquellos mas relevantes con respecto a una necesidad de
informacion expresada por un usuario.
Se caracteriza por:
Una coleccion de documentos (hay que definir que se entiende
por documento en cada caso)
Una pregunta del usuario realizada usando un lenguaje
especfico de consultas
Un conjunto de resultados obtenidos (un subconjunto de la
coleccion de documentos)
Una presentacion de los resultados obtenidos

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

El modelo de claves booleanas


Cada palabra en la coleccion de documentos es una variable
booleana que es cierta en aquellos documentos en los que la
palabra aparece y falsa en los que no aparece
El lenguaje de consulta es el lenguaje de las expresiones
booleanas construidas sobre las caractersticas asociadas a las
palabras. Por ejemplo: pollo AND (tomate OR frito)
Un documento es relevante solo si la consulta se eval
ua a
verdadero
Este modelo tiene la ventaja de que es muy simple y facil de
implementar. Sin embargo tiene bastantes desventajas
La relevancia de un documento es 1 o 0, no hay una gradacion
de la misma
Las expresiones booleanas no suelen ser familiares a los
usuarios que no son programadores o logicos
Es difcil realizar una consulta adecuada
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

El modelo de espacio vectorial

Supondremos a partir de ahora que las consultas las realiza el


usuario mediante texto libre
Conjunto de palabras (terminos) que considera relevantes para
lo que busca

El modelo de espacio vectorial trata de medir la relevancia de


un documento respecto de una consulta a partir de las
frecuencia con la que ocurre un termino de la consulta en un
documento
Pero considerando menos relevantes aquellos terminos que
ocurren con mucha frecuencia en la mayor parte de los
documentos

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Representacion vectorial de un documento


Definiciones:
La frecuencia de un termino t en un documento d (notada
tft,d ) es el n
umero de veces que aparece en el mismo
La frecuencia documental de un termino t (notada dft ) es el
n
umero de documentos en los que aparece el termino
La frecuencia documental inversa de un termino t es
idft = log (N/dft ), donde N es el n
umero total de documentos
El peso de un termino t en un documento d es
tfidft,d = tft,d idft

Un vocabulario es un conjunto de terminos que consideramos


importantes en la coleccion de documentos
Podramos tomar como vocabulario el conjunto de todos los
terminos de todos los documentos, o un subconjunto
significativo de ellos

En el modelo de espacio vectorial un documento se representa


como el vector de pesos de cada termino del vocabulario
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Ejemplo en el modelo de espacio de vectores (Grossman)

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

Consulta: oro plata camion


Vocabulario: llego, da
nado, entrega, fuego, oro, plata,
cargamento, camion, color.

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Ejemplo en el modelo de espacio de vectores (Grossman)

Las representaciones vectoriales de D1 , D2 y D3 son,


~ 1, W
~2 y W
~ 3 (las tres u
respectivamente, W
ltimas columnas de
la tabla)
T
ermino t

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Proximidad entre documentos y consultas


La proximidad entre dos documentos se calcula en funci
on de
la proximidad entre sus vectores de pesos asociados; para ello
calculamos el coseno del angulo que forman:
P
Vi Wi
i=1p
~ ,W
~ ) = pP
sim(V
P
2
2
i=1 (Vi )
i=1 (Wi )
Consultas:
Una consulta puede ser vista como un documento Q, y por
~ (la mayora de sus componentes seran
tanto como un vector Q
cero)
~ W
~ ) dara una medida de lo relevante que es el
sim(Q,
documento respecto de la consulta (cuanto mas cercano a
uno, mas relevante)

Recuperacion de informacion en el modelo vectorial:


transformar tanto la consulta como los documentos en
vectores de pesos, calcular los cosenos y presentar (ordenados)
los K mejores
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Una consulta en el ejemplo anterior

La consulta oro plata camion en representaci


on vectorial es
~ = (0, 0, 0, 0, 0,1761, 0,4771, 0, 0,1761, 0)
Q
Las distintas medidas de similitud son:
~ W
~ 1 ) = 0,00801
sim(Q,
~
~ 2 ) = 0,7561
sim(Q, W
~
~ 3 ) = 0,3272
sim(Q, W

Resultados en orden de relevancia: D2 , D3 , D1

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Recuperacion de la informacion en la practica


Las palabras muy comunes se suelen ignorar (stop words)
Los terminos en los documentos se suelen normalizar:
atendiendo a su raz (stemming), may
usculas/min
usculas,
acentos, correcci
on de deletreo, . . .
Se consideran tambien otros factores que influyen en la
relevancia de un documento respecto de una consulta:
proximidad entre terminos
Evaluacion de sistemas de recuperacion de la informacion:
Precision: porcentaje de documentos devueltos como
relevantes que realmente lo son
Memoria (recall): porcentaje de documentos presentados como
relevantes de entre todos los realmente relevantes

Los sistema reales de recuperacion de la informacion son


sistemas que acceden a una cantidad masiva de datos
Es muy importante la eficiencia: ndices
Muchas veces, depende del hardware de almacenamiento
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Enlaces entre documentos

Hasta ahora, no hemos considerando los sistemas de


recuperacion de la informacion en la web
En ese caso, ademas de la similitud vectorial, es importante
tambien la estructura de enlaces, que influye en la relevancia
del documento.

Ejemplos:
PageRank de Google
HITS (Hyperlink-Induced Topic Search)

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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

PR(p) es el PageRank de una pagina p


N es el n
umero total de paginas en el corpus
ini son las paginas que tienen enlaces a p
C (ini ) es el n
umero de total enlaces que salen desde ini
d es un factor de amortiguaci
on (entre 0 y 1)

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

PageRank

Modelo de navegacion aleatoria: PR(p) es la probabilidad de


que una persona que navega por la red llegue en alg
un
momento a visitar p, supuesto que en cada pagina que visita:
Con probabilidad d, hace clic aleatoriamente en uno de sus
enlaces
Con probabilidad 1 d, reinicia en una pagina aleatoria

El calculo del PageRank de cada pagina se actualiza cada


varios meses
Desde el punto de vista algebraico es el calculo de un
autovector

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

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

Procesamiento del lenguaje natural

Seccion 7

Seccion 7
Clasificaci
on de documentos

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Clasificacion de documentos

El problema de clasificar documentos:


Dado un documento d y un conjunto C de categoras
documentales (o temas), encontrar la clase c a la que
pertenece d.

Tiene numerosas aplicaciones:


Filtros anti-spam
Control de contenidos infantiles
Clasificacion automatica de correos
Detecci
on de sentimientos y opiniones
Presentaci
on de resultados en recuperaci
on de la
informacion,. . .

Es un problema de aprendizaje: supondremos que tenemos un


conjunto entrenamiento (textos ya clasificados)

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Clasificacion de documentos en el modelo vectorial con


kNN

Para clasificar un documento dado, buscar los k documentos


del conjunto de entrenamiento mas cercanos y devolver la
clase mas frecuente en esos k documentos
La cercana la calculamos usando la medida de similitud
definida en el modelo vectorial
Previamente, hay que elegir:
El vocabulario: conjunto de terminos cuyos tfidf serviran
para obtener la representacion vectorial
El valor de k

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Clasificacion de documentos en el modelo vectorial con


kNN
Vocabulario:
Debe ser un conjunto de terminos cuya presencia o ausencia
sea relevante para caracterizar la pertenencia a una clase.
Existen tecnicas estadsticas para elegir esos terminos

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)

Variante en kNN: para cada clase c, sumar la similitud (con el


que se quiere clasificar) de cada documento de esa clase que
este entre los k mas cercanos. Devolver la clase que obtenga
mayor puntuaci
on.
As un documento cuenta mas cuanto mas cercano este
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Clasificacion de documentos usando Naive Bayes


Partimos de un vocabulario de terminos escogido a priori
(existen tecnicas para decidir el conjunto de terminos)
Procedimiento: dado el documento d a clasificar y
{t1 , . . . , tnd } el conjunto de terminos del vocabulario que
aparecen en d, devolver cnb como clasificacion de d, donde
cnb se define:
Y
P(tk |c)
cnb = argmax P(c|d) = argmax P(c)
cC

cC

1knd

Para evitar desbordamientos por n


umeros muy bajos, se suele
usar la siguiente version equivalente X
con logaritmos:
logP(tk |c)]
cnb = argmax [logP(c) +
cC

1knd

Como ya sabemos, las probabilidades de estas formulas se


obtienen como estimaciones ML a partir del conjunto de
entrenamiento
Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Estimacion ML de las probabilidades


umero de
P(c) se estima como NNc , donde Nc es el n
documentos de la categora c y N el n
umero total de
documentos en el conjunto de entrenamiento.
P(t|c) se estima como la proporcion de ocurrencias de t en
todo el conjunto de entrenamiento (respecto de todas las
T
ocurrencias de todos los terminos del vocabulario): P c,tTc,s
sV

Nota: ademas de las suposiciones de independencia sobre las


que esta basado Naive Bayes, tambien asumimos
independencia respecto de la posicion de los terminos dentro
del documento

Para evitar que muchas de estas probabilidades sean 0, se


aplica un suavizado de Laplace:
P(t|c) = P

Tc,t + 1
Tc,t + 1
=P
sV (Tc,s + 1)
sV Tc,s + |V |

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Algoritmo Naive Bayes para clasificacion de texto

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

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Deteccion de SPAM con Naive Bayes

Problema: Decidir si un correo electr


onico es SPAM o no,
basandonos en un conjunto previo de correos clasificados
como SPAM o como HAM
En este caso el corpus esta formado por los correos
electronicos previamente clasificados

Dado un correo nuevo, consideramos la variable aleatoria Y


representando el hecho de que dicho correo sea SPAM o no
Consideramos tambien un conjunto de variables aleatorias Xi
asociadas a ciertas caractersticas del correo electr
onico (p.ej.
aparici
on de ciertas palabras, remitente, may
usculas..)
Se asume que las variables Xi son independientes entre s,
condicionadas a la variable Y
Es muy importante una buena seleccion de caractersticas

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Deteccion de SPAM con Naive Bayes


Seg
un Naive Bayes, se clasifica el nuevo correo como SPAM
en funci
on del valor de
ynb =

argmax

[log (P(Y = y ))+

y {spam.ham}

log (P(X = xi |Y = y ))]

1in

El corpus se utiliza para estimar las probabilidades:


P(Y = spam) =

H
S
, P(Y = ham) =
S +H
S +H

P(X = x|Y = spam) =

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

Procesamiento del lenguaje natural

Bibliografa

Russell, S. y Norvig, P. Artificial Intelligence (A Modern


Approach) 3rd edition (PrenticeHall Hispanoamericana,
2010)
Secciones 22.1, 22.2, 22.3, 23.1, 23.2 y 23.3

Manning, C.D. y Sch


utze, H. Foundations of statistical
natural language processing (MIT Press, 1999)
Manning, C.D., Raghavan, P. y Sch
utze, H. Introduction to
Information Retrieval (Cambridge University Press, 2008)
Secciones 6.2, 6.3, 13.1, 13.2, 14.3, 21.2 y 21.3

Inteligencia Artificial II 20122013

Procesamiento del lenguaje natural

Anda mungkin juga menyukai