Procesamiento del lenguaje natural
Francisco J. Martín Mateos José L. Ruiz Reina
Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla
Índice
Introducción
Modelos probabilísticos
Introducción
• ElProcesamiento del Lenguaje Naturales una disciplina de la Inteligencia Artificial que se ocupa de la formulación e investigación de mecanismos computacionales para la comunicación entre personas y máquinas mediante el uso deLenguajes Naturales
• LosLenguajes Naturalesson los utilizados en la comunicación humana, ya sean escritos, hablados o signados
Aplicaciones del Procesamiento del Lenguaje Natural
• Comprensión del lenguaje (contenido, significado,
relaciones,. . . )
• Recuperación de la información (buscadores en internet,
catálogos, . . . )
• Extracción de la información (estructurada o
semi-estructurada)
• Búsqueda de respuestas (preguntas planteadas en
lenguaje natural,. . . )
• Generación de discurso
• Traducción automática
• Reconstrucción de discurso (espacios en blanco,
traducción, texto predictivo,. . . )
• Reconocimiento del habla
• Síntesis de voz
Fases de la comunicación (
R&N
)
• Intención:Aquiere transmitir la ideaPaB
• Generación:AtransformaPen la fraseW1
• Síntesis:AenvíaW10 aB(dondeW10 es la realización física
deW1)
• Percepción:B percibeW100 como la realización físicaW10 y
lo decodifica como la fraseW2
• Análisis:Binfiere queW2puede tener como posibles
significadosP1, . . . ,Pn
• Resolución de ambigüedades:Bdecide quePi es el
significado más probable de entre los posibles
Análisis del lenguaje
La estructura del lenguaje se analiza a cuatro niveles
• Análisis morfológico: El análisis de las palabras para
extraer raíces, rasgos flexivos, unidades léxicas compuestas y otros fenómenos
• Análisis sintáctico. El análisis de la estructura sintáctica de
la frase mediante una gramática de la lengua en cuestión
• Análisis semántico. La extracción del significado (o
posibles significados) de la frase
• Análisis pragmático. El análisis de los significados más allá
de los límites de la frase, por ejemplo, para determinar los antecedentes referenciales de los pronombres
Análisis morfológico
• Estudia la estructura de las palabras individuales (sin
referencia al contexto) con objeto de identificar componentes y modificadores
• En idiomas como el español se distinguen:
• Raíz de la palabra: proporciona el significado de la palabra
• Modificadores: indican género, número, tiempo verbal, oposición, repetición, ...
• Componentes de derivación: generan una palabra a partir de otra (pueden cambiar la categoría sintáctica)
• En otros idiomas la estructura de una palabra puede ser
más compleja:
• Modificadores que incluyen información sintáctica: declinaciones
• Composición de varias raíces en una misma palabra con o sin información estructural
Análisis sintáctico
• Estudia la estructura de la frase agrupando palabras
según su funcionalidad
• Distintas formas de agrupación oconstituyentes
• Sintagmas nominales: un nombre con o sin determinante
• Sintagmas preposicionales: una preposición junto con un sintagma nominal
• Sintagmas verbales: un verbo que indica una acción, junto con otros sintagmas nominales o preposicionales que proporcionan información adicional que complementa dicha acción
• Formalismos para analizar la estructura de una frase:
• CFG: gramáticas independientes de contexto
• DCG: gramáticas de cláusulas definidas
Análisis semántico
• Estudia el significado de la frase completa a partir de el
significado de las palabras y la estructura sintáctica
• El problema fundamental con el que se enfrenta es la
ambigüedad en el significado de las palabras
• Una vez resuelto el problema de la ambigüedad, utiliza
lenguajes formales para representar el significado de la frase
Análisis pragmático
• Estudia el significado de un texto teniendo en cuenta la
situación de cada frase dentro del mismo
• El problema fundamental con el que se enfrenta es la
presencia de formas adverbiales o pronominales cuyo significado no está explícito en una frase, sino que depende del contexto
• Adverbios: ahora, ayer, entonces, allí, aquí
• Pronombres: éste, aquel, mío, tuyo, suyo
• Se extrae el significado de estos elementos a partir de
• Descripciones de la situación actual (quién habla, cuándo habla, dónde está)
Técnicas de análisis del lenguaje
• Las distintas fases y problemáticas del análisis del
lenguaje se afrontan principalmente con las siguientes técnicas
• Técnicas lingüísticas formales: Se basan en el desarrollo de reglas estructurales que se aplican en las fases de análisis del lenguaje
• Técnicas probabilísticas: Se basan en el estudio en base a un conjunto de textos de referencia (corpus), de
características de tipo probabilístico asociadas a las distintas fases de análisis del lenguaje
• Modelos para el procesamiento del lenguaje natural
• Lógicos (gramáticas)
Modelos probabilísticos del lenguaje
• Unmodelo probabilístico del lenguajedefine unadistribución de probabilidad sobre un conjunto de
palabras, a partir del análisis de uncorpus
• Uncorpuses una colección grande de textos, escritos por y para humanos
• Es decir, cada frase (término, característica, . . . ) tiene asociada una probabilidad y estas probabilidades se
aprendena partir de uncorpuso se calculan a partir de las aprendidas
• Los distintos modelos probabilísticos del lenguaje se
caracterizarán por las propiedades de independencia asumidas, y la forma en la que se calcula la probabilidad de una frase
• Reflejan mejor la realidad del lenguaje y son más robustos
• Seaprendena partir de textos
Modelos
n-gram
: Introducción
• De manera general, dada una secuencia de palabras
w1...wn, su probabilidad calcula de la siguiente forma:
P(W1=w1, . . . ,Wn=wn) =
P(W =w1)P(Wt+1=w2|Wt =w1)· · ·P(Wt+n−1=wn|Wt=w1, . . . ,Wt+n−2=wn−1)
• Intuitivamente, eli-ésimo factor es la probabilidad de que
(en el lenguaje modelado) aparezca la palabrawi a
continuación de la secuenciaw1, . . . ,wi−1
• Estas probabilidades se aprenden a partir de uncorpus
• En la práctica es imposible saber la probabilidad de cada palabra condicionada a cada posible secuencia de palabras anteriores
• Se toman determinadas suposiciones de independencia que simplifican el modelo (a costa de perder precisión)
Modelos
unigram
• Se asume independencia entre palabras consecutivas
P(W1=w1, . . . ,Wn=wn) =
Y
1≤i≤n
P(W =wi)
• Se utiliza aprendizaje ML para estimar las probabilidades
P(W =w) = N(w) N
DondeN(w)es el número de ocurrencias de la palabraw
en el corpus yN es el número total de palabras
Modelos
bigram
• Se asume dependencia entre una palabra y la anterior,
pero independencia con las demás
P(W1=w1, . . . ,Wn=wn) =P(W=w1) Y 1≤i<n P(Wt+1=wi+1|Wt =wi) • Utilizando aprendizaje ML P(Wt+1=w0|Wt =w) = N(w0w) N(w)
DondeN(w0w)es el número de ocurrencias de la
secuenciaw0w en el corpus
• Unbigramestá formado por dos palabras consecutivas en elcorpus
Modelos
trigram
• Se asume dependencia entre una palabra y las dos
anteriores, pero independencia con las demás
P(W1=w1, . . . ,Wn=wn) =
P(W =w1)P(Wt+1=w2|Wt=w1) Y
1≤i<n−1
P(Wt+2=wi+2|Wt =wi,Wt+1=wi+1)
• Untrigramestá formado por tres palabras consecutivas en elcorpus
Modelos
n-gram
• Modelon-gram: Generalización de los modelos anteriores
• Unn-gramestá formado pornpalabras consecutivas en el
corpus
• En estos modelos probabilísticos, salvo elunigram, se
tienen en cuenta relaciones contextuales léxicas, que no suelen aparecer en los modelos gramaticales
Generación 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”, construimos 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 ...
Suavizado en modelos
n-gram
• En un modelon-gram, la probabilidad de gran cantidad de
lasn-secuencias de palabras será nula
• El número total den-secuencias de palabras es muy superior al número den-secuencias que aparecen en el
corpus
• Esto hace que una secuencia de texto perfectamente
válida pueda tener probabilidad nula si alguna de sus
n-secuencias componentes nunca aparece en elcorpus
• Para evitar esto se utilizan técnicas de suavizado
• La técnica de suavizado más 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 técnica de suavizado consiste en realizar una combinación lineal de varios modelos probabilísticos
Suavizado en modelos
n-gram
: ley de Laplace
• Modelounigram suavizado:
P(W =w) = N(w) +1 N+V1
DondeV1es el número total de palabras distintas en el
corpus
• Modelobigram suavizado:
P(Wt+1=wj|Wt =wi) =
N(wi wj) +1
N(wi) +V2
DondeV2es el número total debigramsdistintos en el
Suavizado en modelos
n-gram
: interpolación lineal
• Es probable que untrigram w1w2w3aparezca muy poco
en elcorpus, pero quew2w3ow3sean muy frecuentes
• En esta situación el modelotrigramproporciona una probabilidad muy baja a la secuenciaw1w2w3, pero los
modelosbigramyunigramno
• Una forma desuavizarel modelotrigramconsiste en
combinarlo con los modelosbigramyunigram:
P(Wt+2=w3|Wt =w1,Wt+1=w2) =
λ3P3(Wt+2=w3|Wt =w1,Wt+1=w2)+λ2P2(Wt+1=w3|Wt=w2)+λ1P1(W=w3)
DondeP1es la probabilidad según el modelounigram,P2
es la probabilidad según el modelobigram,P3es la
probabilidad según el modelotrigramyλ1+λ2+λ3=1
• De forma general se puede suavizar un modelon-gram
combinándolo como modelos(n−1)-gram, ...,bigramy
Evaluación de modelos
n-gram
• ¿Cómo de bueno es el modelo probabilístico obtenido a
partir de un corpus?
• Usualmente, separamos el corpus en dos partes: una para
entrenamiento y otra para pruebas
• Una vez obtenido el modelo probabilístico a partir del
corpus de entrenamiento, lo evaluamos calculando las probabilidades que asigna a las cadenas de texto del corpus de prueba
• Para evitar probabilidades demasiado pequeñas, se usa lo
que se conoce comoperplejidad:
Perplejidad(frase) =2−log2(P(frase))/N
dondeN es el número de palabras de la frase
Una aplicación del modelo unigram: segmentación (I)
• Problema: Determinar las palabras de un texto en el que
no hay espacios en blanco
• Esta tarea es necesaria en la interpretación de lenguajes que se escriben sin espacios en blanco, como el Japonés o el Chino
• Ejemplo:
• Supongamos el siguiente texto sin espacios en blanco
Esdifícilleerfrasessinespaciosenblanco • El objetivo es obtener la frase original con un cierto grado
de confianza en que así lo es
Es difícil leer frases sin espacios en blanco
• Este proceso se puede llevar a cabo fácilmente con un
Una aplicación del modelo unigram: segmentación (II)
• Consideremos un modelounigramde uncorpus
• Dado un texto sin espacios en blancow
• Una segmentación dew es una secuencia de palabras
l =wl
1· · ·wkll cuya concatenación es igual aw • Notaremos porLw al conjunto de todas las posibles
segmentaciones dew
• El objetivo consiste en encontrar la segmentaciónl ∈Lw
con mayor probabilidad
argmax l∈Lw P(l) =argmax l∈Lw Y 1≤i≤kl P(W =wil)
Algoritmo de segmentación
• Observaciones
• El modelounigramno tiene en cuenta relaciones contextuales léxicas por lo que el algoritmo considerará como más probables algunas segmentaciones sin sentido
• Un proceso similar se aplica a la identificación de palabras
Una aplicación del modelo bigram: etiquetado
sintáctico
• Problema: Etiquetar cada palabra de un texto con la
categoría sintáctica que le corresponde
• Este es un paso intermedio que permite eliminar ambigüedades léxicas antes del análisis sintáctico
• Ejemplo:
• Supongamos el siguiente texto sin etiquetar
el hombre toma café con leche
• El objetivo es asignar a cada palabra una categoría sintáctica coherente con la estructura de la frase
el/LD hombre/NN toma/VIP café/NN con/E leche/NN
Etiquetado sintáctico
• Es una aplicación de los Modelos Ocultos de Markov
• Hay que determinar la secuencia de etiquetas más probable dada la secuencia de palabras
• La variable de estado es la que identifica la categoría sintáctica (etiqueta) de cada palabra, la distribución de probabilidad de esta variable nos la proporciona un modelo bigram del corpus
• La variable observable nos indica el valor de la palabra
• El proceso de encontrar el etiquetado de mayor probabilidad se resuelve con el Algoritmo de Viterbi
Etiquetado sintáctico
• Consideremos un modelobigramde uncorpus
previamente etiquetado
• Dado un texto denpalabrasw =w1w2...wn
• Un etiquetado de este texto es una secuencia de etiquetas
t =t1t2...tnen la que cadati es la etiqueta asociada a la
palabrawi
• Notaremos porTnal conjunto de todas las sucesiones den
etiquetas
• El objetivo consiste en encontrar el etiquetadot ∈Tncon
mayor probabilidad argmax t∈Tn P(t|w) =argmax t∈Tn P(t,w)
Etiquetado sintáctico
• Cada probabilidad condicionadaP(tj|ti)se estima con la
frecuencia de ocurrencia de las dos etiquetas
consecutivas en elcorpus
P(tj|ti) =
N(ti tj)
N(ti)
• Cada probabilidad condicionadaP(wi|ti)se estima como
la frecuencia con que una palabra tiene una determinada
etiqueta en elcorpus
P(wi|ti) =
N(wi,ti)
Tratamiento semántico del
corpus
• En los ejemplos anteriores elcorpusse trata como una
unidad de la que se obtiene información léxica o sintáctica
• Un tratamiento semántico delcorpusnecesita que éste
esté formado por gran cantidad de documentos
• Ejemplos
• Recuperación de información
• Clasificación de documentos
Recuperación de la información
• Problema: Dada una colección de documentos, encontrar
aquellos más relevantes con respecto a una necesidad de información expresada por un usuario
• Se caracteriza por:
• Una colección dedocumentos(hay que definir qué se entiende por “documento” en cada caso)
• Una pregunta del usuario realizada usando un lenguaje específico de consultas
• Un conjunto de resultados obtenidos (un subconjunto de la colección de documentos)
El modelo de claves booleanas
• Cada palabra en la colección de documentos es una
variable booleana que es cierta en aquellos documentos en los que aparece y falsa en los que no aparece
• El lenguaje de consulta es el lenguaje de las expresiones
booleanas construidas sobre las características asociadas
a las palabras. Por ejemplo:pollo AND (tomate OR
frito)
• Un documento es relevante sólo si la consulta se evalúa a
verdadero
• Este modelo tiene la ventaja de que es muy simple y fácil
de implementar. Sin embargo tiene bastantes desventajas
• La relevancia de un documento es 1 o 0, no hay una gradación de la misma
• Las expresiones booleanas no suelen ser familiares a los usuarios que no son programadores o lógicos
El modelo de espacio vectorial
• Supondremos a partir de ahora que las consultas las
realiza el usuario mediante texto libre
• Conjunto de palabras (términos) 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 término de la consulta en un documento
• Pero considerando menos relevantes aquellos términos que ocurren con mucha frecuencia en la mayor parte de los documentos
Representación vectorial de un documento (I)
• Definiciones:
• Lafrecuencia de un término(term frequency)t en un documentoD, notada comotft,D, es el número de veces
que aparece el término en el documento
• Lafrecuencia documental(documental frequency) de un términot, notadadft, es el número de documentos en los
que aparece el término
• Lafrecuencia documental inversa(inverse documental frequency) de un términot esidft =log(N/dft), dondeN
es el número total de documentos
• Elpesode un términot en un documentoDes
Representación vectorial de un documento (II)
• Unvocabularioes un conjunto de términos queconsideramos importantes en la colección de documentos,
V ={t1, . . . ,tm}
• En el modelo de espacio vectorial un documentoDse
representa como el vector de pesos de cada término del vocabulario
~
D= (d1, . . . ,dm)dondedi =tfidfti,D
• La proximidad entre dos documentos se calcula en función
de la proximidad entre sus vectores de pesos asociados; para ello calculamos el coseno del ángulo que forman:
sim(~D, ~D0) = Pm i=1DiDi0 q Pm i=1(di)2 q Pm i=1(di0)2
Ejemplo en el modelo de espacio de vectores
(
Grossman
)
• Documentos:
• D1: “Cargamento de oro dañado por el fuego”
• D2: “La entrega de la plata llegó en el camión color plata”
• D3: “El cargamento de oro llegó en un camión”
• Consulta: “oro plata camión”
• Vocabulario: llegó, dañado, entrega, fuego, oro, plata,
Ejemplo en el modelo de espacio de vectores
(
Grossman
)
• Las representaciones vectoriales deD1,D2yD3son,
respectivamente,D~1,D~2yD~3(las tres últimas columnas
de la tabla). El número de documentosNes 3.
Términot tft,D1 tft,D2 tft,D3 dft N/dft idft D~1 D~2 D~3 llegó 0 1 1 2 1.5 0.1761 0 0.1761 0.1761 dañado 1 0 0 1 3 0.4771 0.4771 0 0 entrega 0 1 0 1 3 0.4771 0 0.4771 0 fuego 1 0 0 1 3 0.4771 0.4771 0 0 oro 1 0 1 2 1.5 0.1761 0.1761 0 0.1761 plata 0 2 0 1 3 0.4771 0 0.9542 0 cargamento 1 0 1 2 1.5 0.1761 0.1761 0 0.1761 camión 0 1 1 2 1.5 0.1761 0 0.1761 0.1761 color 0 1 0 1 3 0.4771 0 0.4771 0
Proximidad entre documentos y consultas
• Consultas:
• Una consulta puede ser vista como un documento y tendrá, por tanto, un vectorQ~ asociado (la mayoría de sus
componentes serán cero)
• sim(D~, ~Q)dará una medida de lo relevante que es un documento respecto de la consulta (cuanto más cercano a uno, más relevante)
• Recuperación de información en el modelo vectorial:
transformar tanto la consulta como los documentos en vectores de pesos, calcular los cosenos y presentar
(ordenados de mayor a menor) losK mejores (los más
Una consulta en el ejemplo anterior
• La consulta “oro plata camión” en representación vectorial
esQ~ = (0,0,0,0,0,1761,0,4771,0,0,1761,0)
• Las distintas medidas de similitud son:
• sim(D~1, ~Q) =0,00801
• sim(D~2, ~Q) =0,7561
• sim(D~3, ~Q) =0,3272
Recuperación de la información en la práctica (I)
• Las palabras muy comunes se suelen ignorar (stop words)
• Los términos en los documentos se suelen normalizar:
atendiendo a su raíz (stemming), mayúsculas/minúsculas,
acentos, corrección de deletreo, . . .
• Se consideran también otros factores que influyen en la
relevancia de un documento respecto de una consulta: proximidad entre términos
Recuperación de la información en la práctica (II)
• Evaluación de sistemas de recuperación de la información:
• Precisión: porcentaje de documentos devueltos como relevantes que realmente lo son
• Exhaustividad (recall): porcentaje de documentos
presentados como relevantes de entre todos los realmente relevantes
• Los sistema reales de recuperación de la información son
sistemas que acceden a una cantidad masiva de datos
• Es muy importante la eficiencia: índices
Enlaces entre documentos
• Hasta ahora, no hemos considerando los sistemas de
recuperación de la información en la web
• En ese caso, además de la similitud vectorial, es
importante también laestructura de enlaces, que influye en la relevancia del documento.
• Ejemplos:
• PageRankdeGoogle
PageRank
• La relevancia de una página web no puede estar basada
únicamente en sustf, debe tenerse en cuenta también el
número de enlaces que apuntan a la página:
• Pero no todos los enlaces deben “pesar” igual, sino que deben contar más aquellos enlaces desde páginas de mayor relevancia • Definición (recursiva): PR(p) = 1−d N +d X i PR(ini) C(ini)
• PR(p)es elPageRankde una páginap
• Nes el número total de páginas en el corpus
• ini son las páginas que tienen enlaces ap
• C(ini)es el número de total enlaces que salen desdeini
PageRank
• Modelo de navegación aleatoria:PR(p)es la probabilidad
de que una persona que navega por la red llegue en algún
momento a visitarp, supuesto que en cada página que
visita:
• Con probabilidadd, hace clic aleatoriamente en uno de sus enlaces
• Con probabilidad 1−d, reinicia en una página aleatoria
• El cálculo delPageRankde cada página se actualiza cada
varios meses
• Desde el punto de vista algebraico es el cálculo de un
autovector
• En la actualidad, elPageRankno es de los factores más
influyentes en Google a la hora de ordenar páginas relevantes para una consulta, aunque sí que es uno de ellos.
HITS
• Cálculo de relevancia basado en dos valoraciones:
autoridad (authority) y centro (hub).
• Una página es autoridad en una materia si es una fuente importante de información (y por tanto está enlazada desde muchas otras)
• Una página es un centro en la materia si tiene una buena colección de enlaces a autoridades en la materia.
• Definición de los índices de autoridad (a) y centro (h):
a(v) = X
y7→v
h(y) h(v) = X
v7→y
a(y)
• Definición mutuamente recursiva, cuya solución se tiene
Clasificación de documentos
• El problema de clasificar documentos:
• Dado un documentoDy un conjuntoCdecategorías
documentales (otemas), encontrar la clasec∈Ca la que perteneceD.
• Tiene numerosas aplicaciones:
• Filtros anti-spam
• Control de contenidos infantiles
• Clasificación automática de correos
• Detección de sentimientos y opiniones
• Presentación de resultados en recuperación de la información,. . .
• Es un problema deaprendizaje: supondremos que
tenemos un conjunto entrenamiento (textos ya clasificados)
Clasificación de documentos en el modelo vectorial
con
kNN
• Para clasificar un documento dado, buscar losk
documentos del conjunto de entrenamiento más cercanos
y devolver la clase más frecuente en esosk documentos
• La cercanía la calculamos usando la medida de similitud
definida en el modelo vectorial
• Previamente, hay que elegir:
• El vocabulario: conjunto de términos cuyostfidf servirán para obtener la representación vectorial
Clasificación de documentos en el modelo vectorial
con
kNN
• Vocabulario:
• Debe ser un conjunto de términos cuya presencia o ausencia sea relevante para caracterizar la pertenencia a una clase.
• Existen técnicas estadísticas para elegir esos términos
• Elección dek:
• Usando algún conocimiento específico sobre el problema de clasificación
• Realizando pruebas en conjuntos más pequeños
• Preferiblemente impar, para intentar evitar empates
• Variante enkNN: para cada clasec, sumar la similitud
(con el que se quiere clasificar) de cada documento de
esa clase que esté entre losk más cercanos. Devolver la
clase que obtenga mayor puntuación.
Clasificación con Naive Bayes Multinomial
• Dado el documentoDa clasificar devolvercnb como
clasificación deD, dondecnbse define:
cnb =argmax c∈C P(c|D) =argmax c∈C P(c) Y 1≤k≤m P(tk|c)ntk
• siendont el número de veces que el términoten el
documento
• Para evitar desbordamientos por números muy bajos, se
suele usar la siguiente versión, equivalente, con logaritmos: cnb =argmax c∈C logP(c) + X 1≤k≤m ntklogP(tk|c)
• Como ya sabemos, las probabilidades se obtienen como
Estimación ML de las probabilidades
• P(c)se estima como Nc
N, dondeNc es el número de
documentos de la categoríacyN el número total de
documentos en el conjunto de entrenamiento.
• P(t|c)se estima como Tc,t
P
s∈VTc,s, la proporción de
ocurrencias det en todos los documentos de la categoría
c (respecto de todas las ocurrencias de todos los términos
del vocabulario)
• Para evitar que muchas de estas probabilidades sean 0,
se aplica unsuavizado de Laplace:
P(t|c) = P Tc,t+1
s∈V(Tc,s+1)
= P Tc,t +1
Naive Bayes Multinomial para clasificación de texto
C las clases, D el conjunto de entrenamiento yd el documento a clasificar
EntrenaNB(C,D)
1. V ← vocabulario que se extrae de D, 2. N ← número de documentos de D
3. Para cada clase c en C, hacer:
3.1 Nc ← el número de documentos en la clase c, 3.2 prior[c] ← Nc/N,
3.3 Textoc ← concatenación de los documentos de la clase c
3.4 Para cada término t en V, hacer:
3.4.1 T(c,t) ← número de ocurrencias de t en Textoc 3.5 Tc ← la suma de todos los T(c,t),
3.6 Para cada término t en V, hacer:
3.6.1 condprob[c,t] ← (T(c,t) + 1)/(Tc + |V|) 4. Devolver V, prior y condprob
ClasificaNB(C,V, prior, condprob, d) 1. Para cada clase c en C, hacer:
1.1 score[c] ← log(prior[c])
1.2 Para cada término t en V, hacer:
1.2.1 nt ← número de veces que aparace t en d
1.2.2 incrementar score[c] con nt · log(condprob[c,t]) 2. Devolver la clase c para la que score[c] sea máximo
Un ejemplo con Naive Bayes Multinomial
(Manning, Raghavan & Schütze, ejemplo 13.1)Supongamos un problema de clasificación de documentos en el que el vocabulario considerado es {Chino, Pekín, Shanghai, Macao, Tokyo, Japón}. Existen dos categorías posibles: la de los
documentos que hablan de China (ch), y la de los que hablan
de Japón (j). Como conjunto de entrenamiento contamos con
los siguientes documentos:
• D1: “Chino Pekín Chino”, categoríach.
• D2: “Chino Chino Shanghai”, categoríach.
• D3: “Chino Macao”, categoríach.
• D4: “Tokyo Japón Chino”, categoríaj.
¿Cómo clasificaría el método Naive Bayes Multinomial (con
estimación suavizada) el nuevo documentoD5“Chino Chino
Un ejemplo con Naive Bayes Multinomial
• Estimación de las probabilidades (a priori) de cada clase:
P(ch) = 3
4 P(j) =
1 4
• Estimación de las probabilidades de cada palabra (sólo
mostramos las que necesitamos para clasificar el documento): P(Chino|c) = 5+1 8+6 = 3 7 P(Chino|j) = 1+1 3+6 = 2 9 P(Tokyo|c) = 0+1 8+6 = 1 14 P(Tokyo|j) = 1+1 3+6 = 2 9 P(Japon|c) = 0+1 8+6 = 1 14 P(Japon|j) = 1+1 3+6 = 2 9
Un ejemplo con Naive Bayes Multinomial
Clasificamos el documentoD5(en este caso no usamos
logaritmos):
• CategoríachparaD5: 34·(73)3·141 ·141 =0,0003
• CategoríajparaD5:14 ·(92)3·29·29 =0,0001
Luego el método Naive Bayes multinomial clasifica el
documentoD5como de la categoría de los que hablan de
Detección de SPAM con Naive Bayes clásico
• Problema: Decidir si un correo electrónico es SPAM o no,
basándonos en un conjunto previo de correos clasificados como SPAM o como HAM
• En este caso elcorpusestá formado por los correos electrónicos previamente clasificados
• Dado un correo nuevo, consideramos la variable aleatoria
Y representando el hecho de que dicho correo sea SPAM
• Consideramos también un conjunto denvariables
aleatorias,Xi, asociadas a ciertas características del
correo electrónico (p.ej. aparición de ciertas palabras, remitente, mayúsculas..)
• Se asume que las variablesXi son independientes entre sí,
condicionadas a la variableY
• En este caso aplicaremos Naive Bayes “clásico”, visto en el primer cuatrimestre (es decir, no basado en contar
ocurrencias, como es el caso del multinomial)
Detección de SPAM con Naive Bayes
• Según Naive Bayes, se clasifica el nuevo correo como
SPAM en función del valor de
ynb= argmax y∈{spam,ham}
[log(P(Y =y)) + X
1≤i≤n
log(P(X=xi|Y =y))]
• Elcorpusse utiliza para estimar las probabilidades:
P(Y =spam) = S S+H P(Y=ham) = H S+H P(X=x|Y=spam) = Sx S P(x|Y=ham) = Hx H
dondeSx es el número de correos SPAM del conjunto de
entrenamiento que tiene la característicaX =x yHx es el
número de correos HAM del conjunto de entrenamiento
con la característicaX =x
Bibliografía
• Russell, S. y Norvig, P.Artificial Intelligence (A Modern
Approach) 3rd edition(Prentice–Hall Hispanoamericana, 2010)
• Secciones 22.1, 22.2, 22.3, 23.1, 23.2 y 23.3
• Manning, C.D. y Schütze, H.Foundations of statistical
natural language processing(MIT Press, 1999)
• Manning, C.D., Raghavan, P. y Schütze, H.Introduction to
Information Retrieval(Cambridge University Press, 2008)