No siempre funciona mejor el modelo de trigramas sobre el de bigramas, o el de bigramas sobre el de unigramas. Muchas veces la bondad de un modelo depende de la evidencia disponible en el corpus de entrenamiento, si esta no es buena o confiable podemos generar trigramas, por ejemplo, realmente muy poco probables pero con un alto indice de ocurrencia.
¿Cómo se puede mejorar esto? Hay dos algoritmos: Backoff e Interpolación, Backoff consiste simplemente en utilizar trigramas si tenemos buena evidencia, sino bigramas sino unigramas. Interpolación consiste en mezclar los tres modelos. Este algoritmo funciona mejor.
Interpolación:
Como indica la ecuación la suma de todas las lamba (λ) debe sumar 1.
¿Cómo se calcula entonces el valor las λ ?
Usamos un corpus "held-out", que no sé bien cual sería su traducción pero supongamos que es corpus extendido. Este corpus "held-out" es un corpus extra entre el corpus de entrenamiento y el de pruebas.
En el conjunto de entrenamiento obtenemos los valores de las probabilidades de los N-Gramas tal y como hacíamos antes. Luego en el conjunto extendido (Held-Out) buscamos los λ tal que se maximice la probabilidad P(wn | wn-1 wn-2).
Vocabularios cerrados vs. vocabularios abiertos
Si en el vocabulario de prueba o en cualquier otro en donde probemos nuestro modelo pueden aparecer palabras nuevas que no habíamos visto antes en el conjunto de entrenamiento decimos que es abierto, en caso contrario si conocemos todas las palabras de antemano estamos ante un vocabulario cerrado.
La forma de lidiar con vocabularios abiertos es la siguiente, creamos un vocabulario fijo L de tamaño V. Y añadimos un símbolo: "<UNK>" que representa cualquier palabra fuera de L.
En el conjunto mismo de entrenamiento lo probamos reemplazando cualquier palabra fuera de V por <UNK>, de esta forma podemos calcular la probabilidad de cualquier palabra no esperada más adelante.
No hay comentarios:
Publicar un comentario