IIC2613 / Syllabus-2019-1

22 stars 3 forks source link

Dudas T1 #6

Closed ValentinaAlvarezG closed 5 years ago

ValentinaAlvarezG commented 5 years ago

Hola! tengo un par de dudas aun sobre la tarea aún

1) No entiendo bien el concepto de "adaptativo". ¿La idea es que cada texto tenga una forma de compresión distinta? ¿Por qué no sirve contar para cada archivo los caracteres que más se repiten? Creo que esto lo mencionó el profe en clases pero no lo entendí bien.

2) Una de las opciones que pensé es "aprender" el tópico del texto o fragmento de texto. Entonces cada vez que se va a comprimir, se infiere el tópico del texto y se obtiene una tabla de compresión (para los caracteres y palabras) para ese tópico. ¿Se puede hacer esto o se busca que el programa aprenda otra cosa?

Ayuda por favor :c

fipaniagua commented 5 years ago

tengo la misma duda, ¿porque no simplemete se cuenta la fecuencia de caracteres para cada texto y con esa frecuencia armamos la tabla dependiendo del texto (de esta forma no se hace necesario "inferir" la probabilidad de ocurrencia)?

halobel commented 5 years ago

Hola, con respecto al approach que proponen, a pesar de que eso serviría sólo si se guarda la tabla de probabilidades no comprimida en el archivo comprimido (si no, no hay como descomprimir), no se puede usar sencillamente porque no es un enfoque basado en aprendizaje supervisado, es netamente cálculo de promedios. Esta tarea es justamente para evaluar sus conocimientos en el uso de este tipo de algoritmos, el tema de la compresión es un adorno para darle una utilidad interesante. Lo que se busca para la compresión (lo adaptativo), es que cada caracter se comprima lo máximo posible, lo que implica generar para cada uno, una codificación ad-hoc. Por eso es necesario un árbol de Huffman (o codificador aritmético) por cada carácter. Dado que el árbol se contruye a partir de una tabla de frecuencia (o probabilidades), se debe estimar la probabilidad de cada carácter de alguna manera. Ahí es donde entran los algoritmos de aprendizaje supervisado, que permiten estimar para cada carácter una tabla (ojalá) óptima, a partir de la información del texto. Dado que al descomprimir, uno no conoce apriori cuál será el siguiente carácter, la única posibilidad para estimar el árbol es la información previa a él (la que ya ha sido descomprimida), lo que llamamos "contexto".