Está en la página 1de 42

Introducción al

Procesamiento de Lenguaje
Natural
Grupo de PLN - InCo
2011

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Modelos de Lenguaje
But it must be recognized that the notion “probability of a
sentence” is an entirely useless one, under any known
interpretation of this term. Noam Chomsky (1969)

Anytime a linguist leaves the group the recognition rate


goes up. Fred Jelinek (then of the IBM speech group)
(1988)

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Predicción de palabras
Como es de público…
Quedamos a sus gratas…
Solicitamos a los amables…
Tomalo con…

¿Puede venir cualquier palabra? ¿Categorías


gramaticales?

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Predicción de palabras
En Google (sólo español)
“Como es de público” -> 7,950,000 (35.700)
“Como es de público conocimiento” -> 992.000
(34.900)
Pero:
“Como es de público y notorio” (34700)
“Como es de público entendimiento”
“Como es de público dominio”
“Como es de público reconocimiento”

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Predicción de palabras
¿Cómo podemos hacer?

Enfoque simbólico: reglas que “adivinen” la


próxima palabra.
P.ej: IF(entrada=“como es de público”)
THEN (próxima
palabra=“conocimiento”)
¿Problemas de este enfoque?

Enfoque estadístico: modelos de N-gramas


Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la
República
N-gramas
Idea: un modelo de N-gramas (modelo de
lenguaje) intenta predecir la próxima palabra
de una oración a partir de las N-1 anteriores.

El orden importa:
de un vuelo de flamencos quemando un horizonte de
bañados (Cortázar/La vuelta al día en ochenta
mundos)
vuelo de quemando flamencos un de un de bañados
horizonte
de un vuelo de bañados quemando un horizonte de
flamencos

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
N-gramas
Del orden correcto nos podemos dar cuenta
por la sintaxis y la semántica.

Sin embargo, los N-gramas se basan en


probabilidades.

Observación: los N-gramas pueden usarse


para asignar la probabilidad de una oración
completa.
Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la
República
N-gramas: aplicaciones
Reconocimiento del habla.
Reconocimiento de escritura.

(Ejemplos gentileza de Gustavo Crispino – Vision Objects – Nantes – France)

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
N-gramas: aplicaciones
Traducción automática

(a) Implementación de la Ley de Educación, en vista de…


(b) Implementación a la Educación Ley, vista de…
(c) Implementación Ley Educación, en vista de…

Corrección de errores
Sus hordas de Botero, sus hoteles de paso.

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
N-gramas
¿Qué elementos vamos a contar para modelar el
lenguaje?
Con alivio, con humillación, con terror, comprendió que él
también era una apariencia, que otro estaba soñándolo.
¿17 o 22 palabras?
¿Y en un corpus oral?
Eh.. en reali- en realidad yo creía.. creía que era más sencillo.
Disfluencias: fragmentos, rellenos, repetición de palabras…
Mayúsculas, formas flexionadas…

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
N-gramas
Conclusiones:

Modelar depende de la aplicación. No


existen modelos “generales”.

Se necesita un pre-tratamiento: disponer al


menos de palabras y oraciones.

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Cantidad de palabras
¿Cuántas palabras hay en los idiomas?
Oxford English Dictionary: 290.500
Trésor de la langue française: 54.280
Diccionario de la RAE (22a ed.): 88.431

¿Y en un CORPUS?
Brown Corpus -> 1.000.000
CREA (RAE) -> 250.000.000 (en revisión)

Distinguir entre el número de Tokens (T) y el número


de palabras distintas (V).

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Estimación de
probabilidades
Objetivo: computar la probabilidad de que
una palabra w ocurra luego de una
secuencia previa h. P(w | h)

Por ejemplo:
P(conocimiento | como es de público)

¿Cómo podemos hacer?

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Estimación de
probabilidades
La probabilidad se estima a partir de las frecuencias de
ocurrencias en un gran corpus (Principio de Máxima
Verosimilitud: ajustar lo mejor posible a los datos)
Entonces:

P(conocimiento | como es de público) =


C(como es de público conocimiento) / C(como es de público)

Si usamos las páginas indexadas por Google como corpus:


P(conocimiento | como es de público) = 34900/35700 = 0.978

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Estimación de
probabilidades
¿Problemas?
Creatividad del lenguaje:
“Como sería de público conocimiento” tiene
cero ocurrencias según Google.

¿Y si quisiéramos calcular P(como sería de


público conocimiento)?

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Notación
P(Xi = “conocimiento”) => P(conocimiento)

w1, w2, … wn => w1n

P(X1=w1, X2=w2, …, Xn=wn) => P(w1, w2, …, wn)

Regla de la multiplicación

P(w1n) = P(w1).P(w2|w1).P(w3|w12)…P(wn|w1n-1)

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Estimación de la
probabilidad
¿Cómo podemos computar la probabilidad
P(wn|w1n-1) ?

Idea para evitar el problema de creatividad del


lenguaje: en lugar de computar la probabilidad
de w dado un historial h de palabras, aproximar
h tomando en cuenta las últimas palabras.
w1, w2, … , wn-N , wn-N+1, … wn-1, wn

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Hipótesis markoviana
Bigrama: P(wn|w1n-1) ≈ P(wn|wn-1n-1)

Trigrama: P(wn|w1n-1) ≈ P(wn|wn-2n-1)

N-Grama: P(wn|w1n-1) ≈ P(wn|wn-N+1n-1)

Bigrama: P(w1n) =

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Bigramas
¿Cómo estimamos los bigramas?

Se utiliza un Estimador de Máxima Verosimilitud

Se conoce también como el método de


frecuencias relativas.

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Bigramas
¿Cómo tomar en cuenta la primera y última
palabra de una oración?

Simplificación de la fórmula:

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Bigramas
<s> juan abrió la puerta </s>
<s> el viento abrió la puerta </s>
<s> enero abrió limones en tus mejillas nuevas </s>
<s> juan recoge limones </s>

1. P(<s> juan abrió limones </s>)


2. P(<s> enero abrió la puerta </s>)
3. P(<s> juan come </s>)
4. P(<s> en la puerta </s>)

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Bigramas
P(<s> juan abrió limones </s>) =

P(juan | <s>) . P(abrió | juan) . P(limones | abrió) . P(</s> |


limones)
= [c(<s> juan) / c(<s>)] . [c(juan abrió) / c(juan)] .
[c(abrió limones) / c(abrió)] . [c(limones </s>) /
c(limones)]

= 2/4 . 1/2 . 1/3 . 1/2 = 1/24 ≈ 0.042

P(<s> enero abrió la puerta </s>) = 1/6 ≈ 0.17


P(<s> juan come </s>) = 0
P(<s> en la puerta </s>) = 0
Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la
República
N-gramas: determinar N
A mayor valor del N, mejores resultados. Sin
embargo con N=3 (trigramas) generalmente da
muy buenos resultados.

Trigramas: se agregan dos símbolos para inicio de


oración y dos para fin de oración. P.ej: P(juan |
<s> <s>)

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Corpus
Las probabilidades de un modelo de N-Gramas se
obtienen a partir de un corpus de entrenamiento.

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Corpus
Idea: utilizar dos corpus, uno de entrenamiento y
otro de prueba. Dado un problema:
se recopila un conjunto de textos relevantes
se divide en un corpus de entrenamiento (CE) y en un
corpus de prueba (CP)
se entrena el modelo
se lo testea para evaluar el modelo
¿Cómo dividimos?
queremos entrenar lo máximo posible
un corpus de prueba pequeño puede ser no significativo
en general: 90% para el CE y 10% para el CP

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Evaluación de modelos
La manera “correcta” de evaluar un modelo
es empíricamente.

P.ej: Reconocimiento de habla: tomamos dos


modelos, los incluimos en una aplicación y
medimos el que ayuda a reconocer mejor.

Problema: puede ser costoso: horas o días de


procesamiento de un corpus oral.

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Evaluación de modelos
Resulta interesante tener una métrica que
permita hacer una evaluación rápida de un
modelo.
Perplejidad: entre dos modelos, aquél que asigne una
probabilidad mayor a las oraciones del corpus de
prueba es el mejor.

PP(CP) = P(w1w2w3 ... wn)-1/n

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Evaluación de modelos
Aplicando la regla de la multiplicación, y las
hipótesis markovianas para bigramas,
obtenemos

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Evaluación de Modelos
Ejemplo del libro:
Entrenamiento de unigramas, bigramas y trigramas en un
corpus de artículos periodísticos del Wall Street Journal
(WSJ) de 38 millones de palabras.
Utilización de un vocabulario de 19979 palabras.
Se probaron los modelos sobre un corpus de prueba de 1.5
millones de palabras.
Se computó la perplejidad para cada modelo.

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Problemas
Probabilidades nulas: palabras no existentes
o n-gramas que no ocurren en el corpus de
entrenamiento.

Solución a las palabras no existentes:


Se crea un vocabulario fijo.
En el corpus se sustituyen las palabras desconocidas
por una especial (p.ej: <UNK>).

Solución a n-gramas que no ocurren: técnicas de


suavizado.

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Suavizado de n-gramas
Idea simple: agregar 1 a todos los
contadores.

Caso de unigramas
Asumiendo un corpus con T tokens y V palabras
distintas:

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Suavizado de n-gramas
Conviene manejar un contador “ajustado”.

permite compararlo al contador del EMV


se puede convertir en una probabilidad
dividiendo por T

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Suavizado de n-gramas
El suavizado puede verse como una
técnica de descuento.

Una técnica de suavizado se puede


describir en términos del radio de
descuento relativo:

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Suavizado de n-gramas
Esta técnica no funciona muy bien y no suele
usarse en la práctica.

“Mueve” demasiada masa de probabilidad hacia


los N-gramas con probabilidad cero.

Se puede utilizar una fracción δ en lugar de 1. Hay


que calcularla.

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Good-Turing
Idea clave: usar el conteo de las cosas que se
vieron una vez para estimar las que no se
vieron.

Good-Turing re-estima la masa de probabilidad


a asignar a los N-gramas que no ocurren a
partir de la cantidad de N-gramas que
ocurren una vez (singletons).

En la práctica se usan variaciones de la técnica,


en combinación con algoritmos de
interpolación y backoff.
Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la
República
Interpolación y Backoff
Otra manera de resolver el problema de las
probabilidades nulas.

Objetivo: computar la probabilidad

P(wn | wn-1 wn-2)

Problema: no existen ocurrencias de wn-2 wn-1 w en el texto.

Heurística: estimar P(wn | wn-1 wn-2) a partir de P(wn | wn-1)

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Interpolación y Backoff
Dos maneras de estimar:
Backoff: sólo se retrocede a un orden menor
de N-gramas cuando no se tiene evidencia
de un cierto orden mayor. P.ej: Para un
trigrama que no ocurre en el texto se toma
la probabilidad del bigrama sufijo.

Interpolación: se combinan las


probabilidades de diferentes N-gramas para
obtener la nueva probabilidad.

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Interpolación y Backoff
Ejemplo: interpolación lineal simple

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Interpolación y Backoff
Ejemplo: interpolación condicionada por el contexto.

Idea clave: si, p.ej., tenemos un conteo fuerte de un bigrama, podemos


ponderar con más fuerza los trigramas basados en ese bigrama.

Los λi se estiman a partir de un corpus (held-out corpus, aprox. 10% del


total) y forman parte del proceso de tuning del modelo.

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Formatos
Multiplicación de probabilidades:
problema de underflow numérico.

Utilización de logaritmos para computar


las probabilidades. Por ejemplo:

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Formato ARPA

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República
Referencias
J.Martin & D.Jurafsky. Speech and Language Processing. Capítulo 4
Apuntes del curso “Modelos probabilistas del lenguaje natural”.
InCo - Fing - 2007, Prof. Gustavo Crispino.

Introducción al Procesamiento de Lenguaje Natural - InCo - Facultad de Ingeniería - Universidad de la


República

También podría gustarte