490 likes | 713 Views
Calculando probabilidades (diapositivas originales de J. Eisner). N-gram models Luis Villaseñor Pineda Laboratorio de Tecnologías del Lenguaje Coordinación de Ciencias Computacionales, Instituto Nacional de Astrofísica, Óptica y Electrónica. Breves sobre la probabilidad.
E N D
Calculando probabilidades (diapositivas originales de J. Eisner) N-gram models Luis Villaseñor Pineda Laboratorio de Tecnologías del Lenguaje Coordinación de Ciencias Computacionales, Instituto Nacional de Astrofísica, Óptica y Electrónica
Breves sobre la probabilidad ¿Que quiere decir una probabilidad? p(Jacinto primer lugar | cielo despejado) = 0.9 • Comportamiento anterior? • Certeza de una creencia?
p es una función sobre conjuntos de eventos p(ganador | despejado) p(ganador, despejado) / p(despejado) despejado ganador Todos los eventos
Algunas propiedades de p • p() = 0 p(todos los eventos) = 1 • p(X) p(Y) para cualquier X Y • p(X) + p(Y) = p(X Y) si X Y=
Deseamos identificar el idioma de un texto • “Horses and Lukasiewicz are on the curriculum.” • Está en inglés o en polaco? • Es parecido (=probable) al inglés? • Es parecido (=probable) al polaco? • El espacio de ventos no son carreras son secuencias de caracteres (x1, x2, x3, …) donde xn = EOS (end of sentence)
Deseamos identificar el idioma de un texto • Sea p(X) = probabilidad de que el texto esté en inglés • Sea q(X) = probabilidad de que el texto esté el polaco • ¿Qué probabilidad es mayor? “Horses and Lukasiewicz are on the curriculum.” p(x1=h, x2=o, x3=r, x4=s, x5=e, x6=s, …)
Aplicamos la regla de la cadena p(x1=h, x2=o, x3=r, x4=s, x5=e, x6=s, …) = p(x1=h) * p(x2=o | x1=h) * p(x3=r | x1=h, x2=o) * p(x4=s | x1=h, x2=o, x3=r) * p(x5=e | x1=h, x2=o, x3=r, x4=s) * p(x6=s | x1=h, x2=o, x3=r, x4=s, x5=e) * … = 0 4470/ 52108 395/ 4470 5/ 395 3/ 5 3/ 3 0/ 3 counts from Brown corpus
Debilitamos la dependencia p(x1=h, x2=o, x3=r, x4=s, x5=e, x6=s, …) p(x1=h) * p(x2=o | x1=h) * p(x3=r | x1=h, x2=o) * p(x4=s | x2=o, x3=r) * p(x5=e | x3=r, x4=s) * p(x6=s | x4=s, x5=e) * … = 7.3e-10 * … 4470/ 52108 395/ 4470 5/ 395 12/ 919 12/ 126 3/ 485 counts from Brown corpus
Aun mayor independencia p(x1=h, x2=o, x3=r, x4=s, x5=e, x6=s, …) p(x1=h) * p(x2=o | x1=h) * p(xi=r | xi-2=h, xi-1=o) * p(xi=s | xi-2=o, xi-1=r) * p(xi=e | xi-2=r, xi-1=s) * p(xi=s | xi-2=s, xi-1=e) * … = 5.4e-7 * … 4470/ 52108 395/ 4470 1417/ 14765 1573/ 26412 1610/ 12253 2044/ 21250 counts from Brown corpus
Simplificamos la notación p(x1=h, x2=o, x3=r, x4=s, x5=e, x6=s, …) p(x1=h) * p(x2=o | x1=h) * p(r | h, o) * p(s | o, r) * p(e | r, s) * p(s | s, e) * … 4470/ 52108 395/ 4470 1417/ 14765 1573/ 26412 1610/ 12253 2044/ 21250 counts from Brown corpus
Simplificamos la notación p(x1=h, x2=o, x3=r, x4=s, x5=e, x6=s, …) p(x1=h) * p(x2=o | x1=h) * p(r | h, o) * p(s | o, r) * p(e | r, s) * p(s | s, e) * … 4470/ 52108 395/ 4470 1417/ 14765 1573/ 26412 1610/ 12253 2044/ 21250 counts from Brown corpus
Simplificamos la notación p(x1=h, x2=o, x3=r, x4=s, x5=e, x6=s, …) p(h | BOS, BOS) * p(o | BOS, h) * p(r | h, o) * p(s | o, r) * p(e | r, s) * p(s | s, e) * … 4470/ 52108 395/ 4470 1417/ 14765 1573/ 26412 1610/ 12253 2044/ 21250 counts from Brown corpus Estas probabilidades son usadas para definir p(horses)
Simplificamos la notación p(x1=h, x2=o, x3=r, x4=s, x5=e, x6=s, …) t BOS, BOS,h * t BOS, h,o * t h, o,r * t o, r,s * t r, s,e * t s,e,s * … 4470/ 52108 395/ 4470 1417/ 14765 1573/ 26412 1610/ 12253 2044/ 21250 counts from Brown corpus Estas probabilidades son usadas para definir p(horses)
param valores definición de p Nuestro modelo de probabilidad Trigram Model (en términos de parámetros como t h, o, r and t o, r, s ) generamos texto aleatorio determinar probabilidades de un evento
calculamos p(X) calculamos q(X) Inglés vs. Polaco Trigram Model Valores para el inglés definición de p Valores para el polaco definición de q
¿Qué es la “X” en p(X)? • Un elemento de algún espacio de eventos implícito • e.g., carrera • e.g., frase • ¿Qué pasaría si el evento es un documento completo? • p(texto)= p(frase1, frase2, …)= p(frase1) * p(frase2 | frase1)* … compare
¿Qué es la “X” en p(X)? • Supongamos que un evento es una secuencia de letras: • p(horses) • Pero nosotros reescribimos p(horses) comop(x1=h, x2=o, x3=r, x4=s, x5=e, x6=s, …) • p(x1=h) * p(x2=o | x1=h) * … • ¿Qué significa la notación variable=value ? compare
Variables Aleatorias Respuesta: variable es en realidad una función de eventos • p(x1=h) * p(x2=o | x1=h) * … • Un evento es una secuencia de letras • x2 es la segunda letra en la secuencia • p(númbero de soles=2) o sólo p(S=2) • El evento es una secuencia de 3 volados • H ies el número de soles • p(despejado=true) o sólo p(despejado) • El evento es una carreca • despejado es verdadero o falso compare
Como aplicar estas ideas al tratamiento del lenguaje • Contar palabras, fonemas, caracteres, signos de puntuación, frases, etc. condicionados por un contexto anterior • ¿para qué?
Identificación del lenguaje • Útil para moteores de búsqueda • Útiles para text-to-speech (como pronunciar el nombre “Jan Lukasiewicz”?)
Otras más • Categorización de Texto • Segmentación por tópicos • Corrección ortográfica contextual • *esta es una prueba • esta prueba es una • Reconocimiento de voz • El pato maulla • Traducción automática
Traducción • 151. In quale città si trova la Porta di Brandeburgo? • ¿En cuál ciudad se encuentra la Puerta de Brandeburgo? • ¿En qué ciudad la puerta de Brandeburgo se encuentra? • #¿En qué pueblo se encuentra la Puerta de Brandeburgo? • ¿En cuál ciudad halla la puerta de Brandeburgo?
Reconocimiento de voz en Diálogo C: l'agence APT A: oui bonjour c'est l'APT du... du Trentino bonjour C: oui bonjour je voudrais faire un voyage dans le Trentin A: oui C: et je voudrais savoir ce que vous proposez comme... comme organisation toute prête avec les voyages les réservations d'hôtels A: ah oui bien sûr nous avons des offres des forfaits pour l'hiver et pour l'été en quelle saison désirez-vous arriver C: nous allons arriver au mois d'août donc en été A: en été oui quelles exigences avez-vous vous avez des des préférences pour certaines localités du Trentino C: non non du tout c'est un voyage donc on sera deux adultes plus deux enfants A: d'accord
1 – experimentos del mago de Oz délissasses 1 croquantes 42 emmènerais 9 emmènerait 26 badgé 19 badge 3439 faillirent 52 pentateuque 309 tabloïde 17 tabloïds 117 attendriraient 5 agatisé 1 portiques 1165 accusais 18 accusait 662 bioclimats 4 circonscriras 2 délissasses 1 croquantes 42 emmènerais 9 emmènerait 26 badgé 19 badge 3439 faillirent 52 pentateuque 309 tabloïde 17 tabloïds 117 attendriraient 5 agatisé 1 portiques 1165 accusais 18 accusait 662 bioclimats 4 circonscriras 2 Corpus de transcripciones Modelo inicial délissasses 1 croquantes 42 emmènerais 9 emmènerait 26 badgé 19 badge 3439 faillirent 52 Pentat euque 309 tabloïde 17 tabloïds 117 attendriraient 5 agatisé 1 portiques 1165 accusais 18 accusait 662 bioclimats 4 circonscriras 2 Modelo final 2 – aprendizaje de un modelo de lenguaje Creación de un modelo de lenguaje Herramientas de cálculo Herramientas de adaptación
Producción de un modelo de lenguaje estadístico Cálculo del modelo de lenguaje Adaptación del modelo Modelo de Lenguaje Creación del corpus Sensible al corpus de entrenamiento
Problemática • Obtener modelos de lenguaje estadísticos • minimizando el trabajo humano • únicamente necesario en la definición del vocabulario • permitiendo el modelado del lenguaje oral • a través de la utilización de documentos de Internet
Ejemplos de los corpus • Grace • Texto de estilo periodístico para el proyecto de evaluación de sistemas de etiquetado GRACE • WebFr (o WebFr1) • 1.5 Millones de documentos del Web (febrero 1999) • NewsFr • 440000 mensajes de los newsgroups (junio 1999) • WebFr4 • 5 Millones de documentos (diciembre 2000) • WebMex • Resultado de la colaboración franco-mexicana
44 Gb 10 Gb 650 Mb 40 Mb Estudio cuantitativo
Extracción de texto Filtrado en bloques mínimos l ≥ 1 l ≥ 2 l ≥ 4 l ≥ 3 comment allez vous </s> Ø Filtrado en bloques mínimos bonjour monsieur durand comment allez vous . bonjour monsieur <s> comment allez vous </s> <s> bonjour monsieur vous comment allez </s>
nuestra elección final nuestra 1er elección Tamaño de los bloques mínimos Hacer una elección óptima entre el volumen de datos y la representación en 3-gramas: • el tamaño debe ser 3 dado que nosotros trabajamos con 3-gramas • si escojemos 3 : • comment allez-vous ? • si escojemos 4 : • bonjour comment allez-vous ? • si escojemos 5 : • bonjour monsieur comment allez-vous ?
Problema del aprendizaje • La probabilidad de una palabra dado su antecedente se calcula como sigue : • En un texto « normal » esto conduce a una aproximación sobre las últimas palabras de los textos • En este caso, todas las probabilidades P( x | je voudrais) están mal estimadas dado que la cuenta del último « je voudrais » interfiere. Generalmente uno supone que sobre un gran corpus este problema es mínimo. … … … … … c’est un grand lit que je voudrais
Problema con los bloques mínimos • Si se considera el siguiente corpus de aprendizaje: • P( réserver | je voudrais ) = 0.5 • El problema precedente aparece al final de cada bloque, y nosotros tenemos un gran número de bloques. Las probabilidades por lo tanto son equivocadas. Para resolverlo, nosotros utilizamos la siguiente fórmula con contadores diferentes: • P( réserver | je voudrais ) = 1 <s> bonjour ici monsieur durand je voudrais réserver<s> c'est une chambre que je voudrais
1 – Frecuencia de formas lexicales délissasses 1 croquantes 42 emmènerais 9 emmènerait 26 badgé 19 badge 3439 faillirent 52 pentateuque 309 tabloïde 17 tabloïds 117 attendriraient 5 agatisé 1 portiques 1165 accusais 18 accusait 662 bioclimats 4 circonscriras 2 BDLex délissasses 1 croquantes 42 emmènerais 9 emmènerait 26 badgé 19 badge 3439 faillirent 52 pentateuque 309 tabloïde 17 tabloïds 117 attendriraient 5 agatisé 1 portiques 1165 accusais 18 accusait 662 bioclimats 4 circonscriras 2 Frecuencia de palabras délissasses 1 croquantes 42 emmènerais 9 emmènerait 26 badgé 19 badge 3439 faillirent 52 pentateuque 309 tabloïde 17 tabloïds 117 attendriraient 5 agatisé 1 portiques 1165 accusais 18 accusait 662 bioclimats 4 circonscriras 2 ABU délissasses 1 croquantes 42 emmènerais 9 emmènerait 26 badgé 19 badge 3439 faillirent 52 pentateuque 309 tabloïde 17 tabloïds 117 attendriraient 5 agatisé 1 portiques 1165 accusais 18 accusait 662 bioclimats 4 circonscriras 2 WebFr Vocabulario de la tarea + délissasses 1 croquantes 42 emmènerais 9 emmènerait 26 badgé 19 badge 3439 faillirent 52 pentateuque 309 tabloïde 17 tabloïds 117 attendriraient 5 agatisé 1 portiques 1165 accusais 18 accusait 662 bioclimats 4 circonscriras 2 Nuevo vocabulario 2 – Agregado de palabras frecuentes Problema de las palabras desconocidas
5 – cálculo del modelo de lenguaje délissasses 1 croquantes 42 emmènerais 9 emmènerait 26 badgé 19 badge 3439 faillirent 52 pentateuque 309 tabloïde 17 tabloïds 117 attendriraient 5 agatisé 1 portiques 1165 accusais 18 accusait 662 bioclimats 4 circonscriras 2 Vocabulario Final Il mordait en ce moment de fort bon appétit dans un morceau de pain. Il en arracha un peu de mie pour faire une boulette. Il la lança railleusement par le vasistas d'une fenêtre sur laquelle il s'appuyait. Bien dirigée, la boulette rebondit presque à la hauteur de la croisée. Cet inconnu traversait la cour d'une maison située rue Vivienne, où. Cette exclamation échappait à un clerc appartenant au genre de ceu. Il mordait en ce moment de fort bon appétit dans un morceau de pain. Il en arracha un peu de mie pour faire une boulette. Il la lança railleusement par le vasistas d'une fenêtre sur laquelle il s'appuyait. Il en arracha un peu de mie pour faire une boulette. Il la lança railleusement par le vasistas d'une fenêtre sur laquelle il s'appuyait. Bien dirigée, la boulette rebondit presque à la hauteur de la croisée, Cet inconnu traversait la cour d'une maison. Corpus de Bloques mínimos délissasses 1 croquantes 42 emmènerais 9 emmènerait 26 badgé 19 badge 3439 faillirent 52 pentateuque 309 tabloïde 17 tabloïds 117 attendriraient 5 agatisé 1 portiques 1165 accusais 18 accusait 662 bioclimats 4 circonscriras 2 Modelo de lenguaje final WebFr Cálculo del modelo de lenguaje Filtro de Bloques mínimos Herramientas adaptadas
~88% con bloques 5 ~78% 145 Desempeño de reconocedor - ah bon alors c' est d' accord vous me la réservez au nom de monsieur martin - pour quatre jours à partir de demain quel est le tarif - ah à trois cent soixante eh bien je je préfère encore l'autre la première
Problemas al calcular los n-gramas • ¿Qué pasa con los n-gramas que no hemos visto? • ¿su probabilidad es cero? • ¿qué pasa si les damos probabilidad cero? • ¿Cómo lo resolvemos? • “smoothing” / “discounting”
Ejemplifiquemos el problema • El caso de los bigramas: • Generalizamos a n-gramas:
Entonces tenemos • Recordando nuestra fórmula: • Agregamos 1 y normalizamos por el tamaño del vocabulario
Otra solución: Witten-Bell • Usar la cuenta de cosas “vistas” para estimar la cuenta de las cosas “no-vistas” • ¿Cuál es la probabilidad de ver un n-grama por la primera vez? • Contemos el número de veces que vemos N-gramas por primera vez en nuestro corpus • T – total de N-gramas • N – número de tokens