cabecera goo

download cabecera goo

of 47

description

k

Transcript of cabecera goo

  • INDICE GENERAL

    Indice general

    1. Teora de la Informacion 11.1. Calculo de probabilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.1.1. Experimento aleatorio. Espacio muestral asociado . . . . . . . . . . . . . 11.1.2. Distintas definiciones de Probabilidad . . . . . . . . . . . . . . . . . . . . 31.1.3. Probabilidad condicionada . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.4. Sucesos independientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.1.5. Calculo de Probabilidades Condicionadas y de Interseccion de Sucesos . . 7

    1.2. Logaritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.3. Cantidad de Informacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.4. Entropa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    1.4.1. Propiedades de la entropa . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.4.2. Interpretacion de la entropa . . . . . . . . . . . . . . . . . . . . . . . . . 111.4.3. Otra interpretacion de la entropa . . . . . . . . . . . . . . . . . . . . . . 12

    1.5. Entropa Condicionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.6. Informacion Mutua entre dos Variables . . . . . . . . . . . . . . . . . . . . . . . . 151.7. Redundancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    2. Compresion de datos 172.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2. Teora de la codificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    2.2.1. Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.2.2. Evaluacion de los metodos de compresion de datos . . . . . . . . . . . . . 20

    2.3. Metodos estadsticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.3.1. Codificacion de Shannon-Fano . . . . . . . . . . . . . . . . . . . . . . . . 222.3.2. Codificacion Huffman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.3.3. Codificacion aritmetica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    2.4. Metodos de diccionario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.4.1. Codificacion Ziv-Lempel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    2.5. Conclusiones del captulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    3. Compresion de textos en lenguaje natural 353.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2. Compresion Huffman orientada a byte basada en palabras . . . . . . . . . . . . . 35

    3.2.1. Proceso de codificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.2.2. Ejemplos de codificacion Plain y Tagged Huffman . . . . . . . . . . . . . 38

    3.3. Codificacion Densa con Post-Etiquetado . . . . . . . . . . . . . . . . . . . . . . . 393.3.1. Proceso de codificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    Teora de la Informacion: Modelado y Representacion i

  • Captulo 1

    Teora de la Informacion

    Tras un breve repaso a los conceptos fundamentales del calculo de probabilidades, daremosuna serie de nociones basicas sobre Teora de la Informacion, introducida por Claude Shannona finales de los anos cuarenta.

    1.1. Calculo de probabilidades

    1.1.1. Experimento aleatorio. Espacio muestral asociado

    Concepto de Experimento Aleatorio

    Definicion 1.1.1 Un fenomeno o experiencia se dice aleatorio cuando al repetirlo encondiciones analogas no se puede predecir el resultado. Si, por el contrario, se puede predecir elresultado de una experiencia aun antes de realizarla, se dice que el experimento es determinista.

    uunionsq

    Son fenomenos aleatorios:

    Extraccion de una carta de la baraja

    Lanzamiento de un dado

    Respuestas a una encuesta

    Suceso Elemental

    Se denomina Suceso Elemental de un experimento aleatorio a cada uno de los posiblesresultados de dicho experimento que no pueden descomponerse en resultados mas simples. Alrealizar un experimento aleatorio siempre ocurre uno de los sucesos elementales. Al ocurrir unsuceso elemental, quedan excluidos todos los demas.

    Ejemplo 1.1.1 Si consideramos el experimento aleatorio resultado de sacar una carta de unabaraja y los sucesos: S1 = Sacar as de oros. S2 = Sacar un as. Solo S1 es elemental, ya que S2puede descomponerse en sacar el as de oros, el as de copas, el de espadas o el de bastos.

    uunionsq

    Teora de la Informacion: Modelado y Representacion 1

  • 1.1. CALCULO DE PROBABILIDADES

    Sucesos. Suceso Imposible o Nulo. Suceso Contrario

    Definicion 1.1.2 Un suceso de un experimento aleatorio es cualquier composicion de lossucesos elementales de dicho experimento. uunionsq

    Ejemplo 1.1.2 El experimento aleatorio Estado civil de una persona tiene como sucesoselementales: S1 = Soltero. S2 = Casado. S3 = Divorciado. S4 = Viudo. A partir de estos podemosformar: S5 = {S1, S2} = Soltero o casado. S6 = {S1, S3} = Soltero o divorciado. S7 = {S1, S4}= Soltero o viudo. Y de la misma forma: S8 = {S2, S3}; S9 = {S2, S4}; S10 = {S3, S4};S11 = {S1, S2, S3}; S12 = {S1, S2, S4}; S13 = {S1, S3, S4}; S14 = {S2, S3, S4}. uunionsq

    Un suceso puede determinarse por extension (enumerando los elementos) o por intension(dando una propiedad que se verifica por, y solo por, los elementos de dicho subconjunto).

    Diremos que un suceso A se verifica cuando al realizar el experimento se obtiene comoresultado uno de sus sucesos elementales.

    Definicion 1.1.3 El conjunto de todos los posibles resultados de un experimento se llamaespacio muestral. uunionsq

    Ejemplo 1.1.3 El espacio muestral del experimento que consiste en lanzar una moneda al airetres veces es:

    E = {(c, c, c), (c, c, x), (c, x, c), (x, c, c), (x, x, c), (x, c, x), (c, x, x), (x, x, x)}

    uunionsq

    El conjunto formado por todos los sucesos del espacio muestral se llama espacio de sucesosS. Es decir, el espacio de sucesos esta formado por todos los subconjuntos del espacio muestral.

    Ejemplo 1.1.4 Si la experiencia aleatoria es, por ejemplo, lanzar una moneda, entoncesE = {c, x} y el espacio de sucesos S = {, {c}, {x}, {c, x}} uunionsq

    Los sucesos definidos por los conjuntos y E se llaman suceso imposible y suceso segurorespectivamente. El suceso imposible es aquel que nunca se realiza, y el suceso seguro es el quese realiza siempre.

    Algebra de Sucesos

    Suceso complementario: Dado un suceso A, se llama suceso contrario o complementario deA, y se representa por A, al suceso que se realiza cuando no se realiza A. El suceso contrario deE es , y viceversa.

    Inclusion de sucesos: Un suceso A se dice que esta contenido o inducido en otro B si siempreque se verifica A se verifica B. Se representa A B.

    Union de sucesos: Dados dos sucesos A y B se llama union de A y B, y se representa por(A B), al suceso que se realiza cuando se realiza alguno de ellos, A o B.

    2

  • 1.1. CALCULO DE PROBABILIDADES

    Producto o Interseccion de sucesos: Dados dos sucesos A y B, se llama suceso interseccion(o producto) de A y B, y se representa por (AB) (o (A B) o (A,B)), al suceso que se realizasi y solo si se realizan simultaneamente A y B.

    Dos sucesos A y B cuya interseccion es el suceso imposible se llaman sucesos incompatibles.Observese que un suceso y su contrario son siempre incompatibles.

    Diferencia de sucesos: Dados dos sucesos A y B, se llama suceso diferencia de A y B, y serepresenta por (A \B), al suceso formado por todos los sucesos de A que no estan en B.

    1.1.2. Distintas definiciones de Probabilidad

    Definicion de Frecuencia Absoluta y Relativa de un Suceso

    Se llama frecuencia absoluta de un suceso A, fa(A), al numero de veces que se verifica A alrealizar el experimento un numero determinado de veces.

    Se llama frecuencia relativa de un suceso A, fr(A), al cociente entre su frecuencia absolutay el numero de veces que se realiza el experimento.

    fr(A) =fa(A)n

    siendo n el numero de veces que se repite el experimento.Propiedades:

    1. 0 fr(A) 1

    2. fr(E) = 1

    3. Si A B = entonces fr(A,B) = fr(A) + fr(B)

    La frecuencia relativa de un suceso tiende a estabilizarse hacia un valor a medida que elnumero de pruebas del experimento aleatorio crece indefinidamente. Dicho numero se denominaprobabilidad del suceso.

    Definicion Axiomatica de Probabilidad

    Sea E el espacio muestral de un experimento aleatorio. Una probabilidad en E es cualquierfuncion P que asigna a cada sucesoA un numero real P (A) que cumple las siguientes propiedades:

    1. 0 P (A) 1

    2. P (E) = 1

    3. Si A y B son incompatibles (es decir, (A B) = ) entonces:

    P (A B) = P (A) + P (B)

    Estas tres condiciones reciben el nombre de axiomas de probabilidad.

    3

  • 1.1. CALCULO DE PROBABILIDADES

    Propiedades de la Probabilidad

    1. P () = 0

    2. P (A) = 1 P (A) para todo A P (E)3. Si A y B son sucesos tales que A B, entonces P (A) P (B)4. Si A y B son dos sucesos no necesariamente incompatibles, entonces:

    P (A B) = P (A) + P (B) P (A,B)

    5. P (A \B) = P (A) P (A,B)

    Definicion de Laplace

    Si los resultados de una experiencia aleatoria son casos equiprobables, la probabilidad de unsuceso A es:

    P (A) =no casos favorablesno casos posibles

    Por lo tanto, esta definicion es aplicable a caso como lanzamiento de una moneda o dado,pero no es valida para casos como Cual es la probabilidad de que al nacer un nino este seavaron?, Cual es la probabilidad de contraer determinada enfermedad?, Cual es la probabilidadde que acudan mas de 100 pacientes a urgencias?....

    Interpretacion Bayesiana o Subjetiva

    Es una forma mucho mas operativa de definir la probabilidad, que consiste en utilizar lainformacion de la que un sujeto dispone para realizar una apreciacion personal de la probabilidadde un suceso.

    Obviamente, si el sujeto conoce la frecuencia relativa del suceso, y su actuacion es coherente,utilizara esta como probabilidad. Si no conoce la frecuencia relativa, utilizara cualquier otrotipo de informacion para dar una estimacion de la probabilidad. Es lo que hacemos cuando, porejemplo, decimos: Hay una probabilidad del 60% de que llueva este fin de semana; tenemos un50% de posibilidades de que salga adelante este proyecto...

    Evidentemente, la estimacion de la probabilidad variara en funcion del sujeto y de lainformacion de la que este disponga. Por eso sera mas correcto decir P (A/I), que se lee:Probabilidad de que suceda A dado que disponemos de la informacion I. Este tipo de notacionse usa para la probabilidad condicionada, tal como veremos mas adelante.

    La Estadstica clasica se apoya exclusivamente en los datos para estimar las caractersticasde la poblacion, mientras que la Estadstica Bayesiana utiliza ademas la informacion basada enel grado de creencia que tiene el experimentador acerca de esas caractersticas. El analisis de losdatos permite variar esa creencia y el resultado puede servir de base para una nueva estimacion.

    Calculo Practico de Probabilidades

    La raz del problema esta en la asignacion de probabilidades a los sucesos elementales, yaque a partir de estos se puede calcular la probabilidad de cualquier suceso compuesto, aplicandolas reglas que hemos visto.

    La determinacion de la probabilidad de un suceso elemental puede hacerse:

    4

  • 1.1. CALCULO DE PROBABILIDADES

    1. Estudiando la frecuencia relativa mediante la repeticion del experimento hasta ver queesta se estabiliza.

    2. Deduciendolo de la naturaleza del experimento. El caso mas simple es aquel en el quetodos los sucesos elementales seran equiprobables, por lo que todos tendran probabilidad1/n, siendo n el numero de sucesos elementales de E.

    En este caso la probabilidad de un suceso compuesto obedece a la formula de:

    P (A) =no casos favorablesno casos posibles

    =no sucesos elementales de Ano sucesos elementales de E

    3. Combinando la informacion acerca de la naturaleza del experimento con los resultados deeste.

    1.1.3. Probabilidad condicionada

    Para introducirnos en este concepto, veamos primero el siguiente ejemplo: Los resultados deuna encuesta sobre la actitud poltica de 334 personas es el siguiente:

    Varones Mujeres TotalDerechas 145 42 187Izquierdas 51 96 147Total 196 138 334

    Ejemplo 1.1.5 Sea A:ser de derechas y B:ser varon. Se elige una persona al azar, cual esla probabilidad de que sea de derechas sabiendo que es varon?

    Evidentemente, la probabilidad pedida es 145196 pues hay 196 varones de los cuales 145 son dederechas. uunionsq

    Esta probabilidad se denomina Probabilidad condicionada del suceso A respecto al sucesoB. Dicho de otro modo, la probabilidad condicionada de un suceso A respecto de otro B es lafrecuencia relativa con la que se da el suceso A cuando se ha dado el suceso B.

    La probabilidad condicionada P (A/B) no debe confundirse con P (A,B):

    1. P (A,B) es la probabilidad de que se den simultaneamente A y B referida al espaciomuestral.

    2. P (A/B) es lo mismo, pero tomando B como espacio muestral de referencia.

    Ejemplo 1.1.6 Si consideramos el experimento aleatorio resultado de lanzar un dado, entoncesE = {1, 2, 3, 4, 5, 6}. Podemos tomar los sucesos A = {5, 6} (salir 5 o mas), y B = {2, 4, 6} (salirpar).En consecuencia, (A,B) = {6} y de aqu:

    P (A,B) =no de elementos de (A,B)no de elementos de E

    =16

    5

  • 1.1. CALCULO DE PROBABILIDADES

    Si sabemos que ha sucedido B, el espacio muestral E se reduce a B ya que los unicos resultadosposibles son {2, 4, 6}. En tal caso A = {6}, puesto que el 5 no existe en el nuevo espacio muestral,y entonces:

    P (A/B) =no de elementos del nuevo A

    no de elementos de B=

    13

    . uunionsq

    Definicion 1.1.4 Se llama Probabilidad condicionada del suceso A respecto del suceso B, y ladenotaremos por P (A/B), al cociente:

    P (A/B) =P (A,B)P (B)

    si P (B) 6= 0

    uunionsq

    Analogamente podemos definir P (B/A).De lo anterior se deducen claramente las relaciones siguientes:

    P (A,B) = P (B) P (A/B)

    P (A,B) = P (A) P (B/A)

    Ejemplo 1.1.7 De una urna que contiene 9 bolas rojas y 5 negras se extraen sucesivamente 2bolas. Calcular la probabilidad de los siguientes sucesos:

    a) Que las dos sean negrasb) Que las dos sean rojasc) Que la primera sea roja y la segunda negrad) Que la segunda sea roja sabiendo que la primera fue negra

    uunionsq

    Solucion:a) Sea N1: Sacar la 1a Negra, N2: Sacar la 2a Negra

    P (N1, N2) = P (N1) P (N2/N1) = 514 413

    b) Sea R1: Sacar la 1a Roja, R2: Sacar la 2a Roja

    P (R1, R2) = P (R1) P (R2/R1) = 914 813

    c) Sea R1: Sacar la 1a Roja, N2: Sacar la 2a Negra

    P (R1, N2) = P (R1) P (N2/R1) = 914 513

    d) Sea N1: La 1a es Negra, R2: La 2a es Roja

    P (R2/N1) =913

    (quedan 13 bolas de las cuales 9 son rojas)

    6

  • 1.1. CALCULO DE PROBABILIDADES

    1.1.4. Sucesos independientes

    Definicion 1.1.5 Dos sucesos A y B se dicen independientes cuando el conocimiento deque uno de ellos ha ocurrido no modifica la probabilidad de que ocurra el otro. Es decir, siP (B) = P (B/A) uunionsq

    Ejemplo 1.1.8 Consideremos el experimento de extraer cartas de una baraja. Cual es laprobabilidad de extraer dos reyes?

    a) sin devolver la 1a cartab) con devolucion uunionsq

    Solucion: a) R1: conseguir rey en la 1a extraccion R2: conseguir rey en la 2a extraccion

    P (R1, R2) = P (R1) P (R2/R1) = 440 339

    b)

    P (R1, R2) = P (R1) P (R2) = 440 440

    1.1.5. Calculo de Probabilidades Condicionadas y de Interseccion de Sucesos

    De la combinacion de la formula de la probabilidad condicionada y de la definicion de sucesosindependientes se puede deducir que si dos sucesos A y B son independientes entonces:

    P (A,B) = P (A) P (B)Esta formula se puede extender para el caso de n sucesos independientes A1, A2, ..., An

    quedando:

    P (A1, A2, ..., An) = P (A1) P (A2) ... P (An)Como hemos visto, en el caso de sucesos dependientes tenamos la expresion: P (A,B) =

    P (A) P (B/A) que en el caso de tres sucesos sera:P (A,B,C) = P (A) P (B/A) P (C/A,B)

    pudiendo generalizarse tambien esta formula para el caso de n sucesos.

    Definicion 1.1.6 Se dice que un conjunto de sucesos A1, A2, ..., An forman un sistema completode sucesos para un determinado experimento aleatorio si verifican las dos condiciones siguientes:

    a) A1 A2 ... An = Eb) A1, A2, ..., An son incompatibles 2 a 2 (es decir, (Ai Aj) = ) uunionsq

    Teorema de la Probabilidad Total

    Sea A1, A2, ..., An un sistema completo de sucesos tales que la probabilidad de cada uno deellos es distinta de 0, y sea B un suceso cualquiera para el que se conocen las probabilidadesP (B/Ai), entonces la probabilidad del suceso B viene dada por:

    P (B) =ni=1

    P (Ai) P (B/Ai)

    7

  • 1.2. LOGARITMOS

    Ejemplo 1.1.9 Se tienen dos urnas, la no 1 tiene 3 bolas blancas y 2 negras, la no 2 tiene 2bolas blancas y 3 negras. Se elige una urna al azar y de ella se extrae una bola. Calcular laprobabilidad de que sea blanca.

    Sea A1:elegir la urna no 1, A2:elegir la urna no 2, B:extraer bola blanca

    P (B) = P (A1) P (B/A1) + P (A2) P (B/A2) = 12 35+12 25=

    12

    uunionsq

    Teorema de BAYES

    Sea A1, A2, ..., An un sistema completo de sucesos tal que la probabilidad de cada uno deellos es distinta de 0, y sea B un suceso cualquiera para el que se conocen las probabilidadesP (B/Ai), entonces:

    P (Ai/B) =P (Ai) P (B/Ai)ni=1 P (Ai) P (B/Ai)

    , i=1,2,..., n

    Ejemplo 1.1.10 En el ejercicio anterior, supongamos que realizada la extraccion la bolaextrada es blanca. Calcular la probabilidad de que sea de la urna no 1.

    P (A1/B) =P (A1).P (B/A1)

    P (A1) P (B/A1) + P (A2) P (B/A2) =1/2 3/5

    1/2 3/5 + 1/2 2/5 =35

    uunionsq

    1.2. Logaritmos

    A continuacion se presentan las caractersticas de los logaritmos que seran utilizadas en elresto del captulo.

    1. loga(x) ay = x2. loga(x) = 0 x = 1

    loga(x) > 0 x > 1loga(x) < 0 x < 1

    3. loga(x) no esta definida para x < 0

    4. loga(xy) = loga(x) + loga(y)

    5. loga(xy ) = loga(x) loga(y)

    6. loga(xn) = n loga(x)

    7. loga(a) = 1

    8. loga(an) = n loga(a) = n

    9. loga(a) = 12 loga(a) =

    12

    10. loga(1an ) = loga(a

    n) = n loga(a) = n

    8

  • 1.3. CANTIDAD DE INFORMACION

    1.3. Cantidad de Informacion

    Vamos a introducir este concepto partiendo de su idea intuitiva. Supongamos que tenemosuna bolsa con nueve bolas negras y una blanca. Cuanta informacion obtenemos si alguien nosdice que ha sacado una bola blanca de la bolsa? Y cuanta obtenemos si despues saca otra ynos dice que es negra?

    Obviamente, la respuesta a la primera pregunta es que aporta bastante informacion, puestoque estabamos casi seguros de que la bola tena que salir negra. Analogamente si hubiera salidonegra diramos que ese suceso no nos extrana (nos suministra poca informacion). En cuantoa la segunda pregunta, claramente podemos contestar que el suceso no proporciona ningunainformacion, ya que al no quedar bolas blancas sabamos que iba a salir negra.

    La cantidad de informacion esta relacionada, por lo tanto, con la disminucion de laincertidumbre acerca de la ocurrencia de un suceso. As, si nos dicen que el numero que hasalido en un dado es menor que dos, nos dan mas informacion que si nos dicen que el numeroque ha salido es par.

    La cantidad de informacion que obtenemos al conocer un suceso es proporcional al numero devalores posibles que este tenga a priori. As, si inicialmente existen 1000 posibilidades, conocer elsuceso nos proporciona mas informacion que si inicialmente tuvieramos 2. Por ejemplo, suponemayor informacion conocer la combinacion ganadora del proximo sorteo de la Lotera Primitiva,que saber si una moneda lanzada al aire va a caer con la cara o la cruz hacia arriba. Claramentees mas facil acertar en el segundo caso, puesto que el numero de posibilidades a priori -y, portanto, la incertidumbre, suponiendo sucesos equiprobables- es menor.

    Tambien la cantidad de informacion es proporcional a la probabilidad de aparicion de unsuceso. En el caso de las bolas pueden pasar dos cosas: sacar bola negra, que es mas probable,y sacar bola blanca, que es menos probable. Sacar una bola negra aumenta nuestro grado decerteza inicial de un 90% a un 100%, proporcionando una ganancia del 10%. Sacar una bolablanca aumenta esa misma certeza en un 90% -puesto que partimos de un 10%-. Podemosconsiderar que la disminucion de incertidumbre es proporcional al aumento de certeza, por locual diremos que el primer suceso -sacar bola negra- aporta menos informacion.

    A partir de ahora, con objeto de simplificar la notacion, vamos a emplear una variablealeatoria V para representar los posibles sucesos que podemos encontrar, P (i) la probabilidadasociada al suceso i y n sera el numero de sucesos posibles.

    El concepto de cantidad de informacion proporcionada por un suceso i es cuantificable y sepuede definir de la forma:

    Ii = log(1/P (i)) = logP (i)Esta medida puede entenderse tambien como la informacion necesaria para representar que

    se ha producido el suceso i.Su interpretacion es intuitiva; en caso de que P (i) = 1 (probabilidad maxima) entonces i no

    es informativa ya que tiene que ocurrir siempre y, por tanto, la cantidad de informacion que nosaporta sera igual a 0. Igualmente, cuanto mas pequeno sea el valor de P (i) (es decir, es masimprobable que suceda) mayor es su cantidad de informacion. Esto es logico, ya que el estado deincertidumbre se reduce en mayor medida [1, 15] -un suceso que no puede ocurrir nos aportarauna cantidad infinita de informacion si llegara a ocurrir-.

    La base del logaritmo es arbitraria y unicamente esta relacionada con la normalizacion. Si seemplea logn entonces la unidad de informacion se denomina nat (unidad natural). Si se emplealog10 entonces la unidad de informacion es dgitos. Generalmente se utiliza 2 como base, de modo

    9

  • 1.4. ENTROPIA

    que la cantidad de informacion se expresa en bits. As, la cantidad de informacion asociada alsuceso mas simple que consta unicamente de 2 posibilidades equiprobables -como en el caso detirar una moneda y obtener cara sera igual a 1 bit.

    1.4. Entropa

    La cantidad media de informacion H(V ) de todos los posibles estados de una variablealeatoria V , conocida como entropa, es la media ponderada de la cantidad de informacionasociada a cada uno de sus sucesos, considerando que los pesos en este promedio son lasprobabilidades de ocurrencia. La expresion de la entropa, cuyo autor es Claude Shannon [21],es de la forma:

    H(V ) =ni=1

    P (i) log P (i)

    La entropa es la informacion media que obtenemos cuando conocemos un suceso dentro de unconjunto.

    Ejemplo 1.4.1 Veamos la entropa de la variable aleatoria asociada a lanzar una moneda alaire. En este caso tenemos 2 posibles sucesos, cada uno con una probabilidad de 0,5. Por lotanto:

    H(M) = P (cara) Icara + P (cruz) Icruz = (0, 5 log2 0, 5 + 0, 5 log2 0, 5) = 1

    Este suceso aporta exactamente 1 unidad de informacion. uunionsq

    Ejemplo 1.4.2 Si la moneda esta trucada (60% de probabilidades para cara, 40% para cruz),se obtiene:

    H(M) = (0, 6 log2 0, 6 + 0, 4 log2 0, 4) = 0, 970uunionsq

    Ejemplo 1.4.3 Veamos el ejemplo de las bolas (nueve negras y una blanca):

    H(B) = (0, 9 log2 0, 9 + 0, 1 log2 0, 1) = 0, 468

    uunionsq

    1.4.1. Propiedades de la entropa

    La medida de entropa H(V ) cumple las siguientes propiedades:

    1. Si V presenta n sucesos equiprobables, H(V ) es creciente con n. Cuantos mas sucesosdistintos haya mayor sera la incertidumbre que se tenga, entonces mayor sera la cantidadde informacion.

    2. Es una funcion continua de la funcion de probabilidad; esto es, pequenos cambios en lafuncion de probabilidad ejercen cambios continuos.

    3. Es simetrica: El orden de las probabilidades de los sucesos no afecta al resultado.

    10

  • 1.4. ENTROPIA

    4. Es aditiva: Dadas 2 variables X e Y , si los sucesos de X son independientes de los de Y ,entonces H(X,Y ) = H(X) +H(Y )

    5. H(V ) es maxima si todas las probabilidades son iguales (es decir, dados n sucesos,P (i) = 1/n para todo suceso i). Esto corresponde a la situacion donde existe maximaincertidumbre, por lo que la ocurrencia de uno de los sucesos dara maxima informacion.En este caso,

    H(V ) =ni=1

    P (i) log2 P (i) =n

    n log2 n = log2 n = maxH(V )

    6. H(V ) es mnima si uno de los sucesos tiene probabilidad 1.

    1.4.2. Interpretacion de la entropa

    Para comprender mejor lo que significa la medida de informacion de Shannon, consideremoslos 2 ejemplos siguientes:

    Ejemplo 1.4.4 Supongamos una imagen formada por 16 regiones, una de las cualesesta sombreada, tal como se muestra en la Figura 1.1. El juego consiste en determinar cuales la region sombreada haciendo preguntas en las que unicamente se puede responder con so no. Cual es la mejor estrategia para formular el menor numero de preguntas?. uunionsq

    Figura 1.1: Juego para encontrar la region sombreada

    Si optamos por adivinarlo podramos necesitar, en el peor caso, 16 cuestiones. Una mejorsolucion es hacer preguntas selectivas de la forma:

    1. La region sombreada es una de las ultimas 8 regiones?

    Respuesta: no, por lo que se eliminan las regiones 9 a 16.

    2. La region sombreada es una de las 4 regiones restantes de la izquierda?

    Respuesta: s, por lo que la region buscada es 1, 2, 5 o 6.

    3. La region sombreada es una de las 2 inferiores entre las 4 restantes?

    Respuesta: s, por lo que la region buscada es 5 o 6.

    11

  • 1.4. ENTROPIA

    4. La region sombreada es la izquierda?

    Respuesta: no, por lo que la solucion es la region 6.

    De este modo, con 4 preguntas se puede determinar cual de las 16 regiones es la sombreada.Si ahora calculamos la entropa correspondiente a este problema, dado que las 16 regiones

    son equiprobables, entonces:

    H(V ) = 16i=1

    116 log2

    116

    = log2 16 = 4 bits

    Aparentemente, la cantidad de informacion corresponde con el numero mnimo de preguntasque deben hacerse para determinar cual es el suceso (en este caso, la region sombreada) que haocurrido.

    Veamos si esta interpretacion es valida cuando las distribuciones de probabilidad no sonequiprobables.

    Ejemplo 1.4.5 Dada una variable X = {x1, x2, x3} cuyas probabilidades son P (1) =1/2, P (2) = 1/4, P (3) = 1/4.

    Aplicando de nuevo el juego s-no, parece obvio preguntar por x1 en primer lugar, ya quees el suceso con mayor probabilidad. Si la respuesta es no, para determinar si la respuesta esx2 o x3 necesitaremos unicamente otra pregunta.

    Por lo tanto, sera necesario realizar entre 1 y 2 preguntas, con la misma probabilidad, lo queda lugar a una media de 1.5 cuestiones.

    Si calculamos la entropa correspondiente a este problema, sera:

    H(V ) = 12 log2

    12 14 log2

    14 14 log2

    14

    = 1,5 bits

    uunionsq

    Por lo tanto, la interpretacion anterior de la entropa es valida tambien aqu.

    1.4.3. Otra interpretacion de la entropa

    Observese que la entropa es proporcional a la longitud media de los mensajesnecesarios para codificar una serie de valores de V de manera optima dado un alfabetocualquiera. Esto quiere decir que cuanto mas probable sea un valor individual, aportara menosinformacion cuando aparezca, y podremos codificarlo empleando un mensaje mas corto. SiP (i) = 1 no se necesitara ningun mensaje, puesto que sabemos de antemano que siempre se vaa dar, mientras que si P (i) = 0, 9 parece mas logico emplear mensajes cortos para representarel suceso i y largos para los j restantes, ya que el valor que mas veces va a aparecer en unasecuencia de sucesos es precisamente i.

    Podemos decir que la entropa de una variable aleatoria es el numero medio de bits quenecesitaremos para codificar sus sucesos de una variable, suponiendo que expresemos cada sucesoempleando un mensaje escrito en un alfabeto binario.

    Ejemplo 1.4.6 Supongamos que queremos representar los dgitos decimales usando secuenciasde bits. Con 3 bits no tenemos suficiente, pero cuantos mas necesitamos? Si usamos 4 bits talvez nos estemos pasando...

    Veamos cuanta entropa tienen 10 sucesos equiprobables:

    12

  • 1.5. ENTROPIA CONDICIONADA

    H(S) = 10i=1

    110 log2

    110

    = log2110

    = 3, 32 bits

    uunionsq

    El valor que acabamos de calcular es el lmite teorico, que normalmente no se puede alcanzar.Lo unico que podemos decir es que no existe ninguna codificacion que emplee longitudespromedio de mensaje inferiores a la entropa. Veamos la siguiente codificacion:

    Smbolo Codigo0 0001 0012 0103 0114 1005 1016 11007 11018 11109 1111

    Con esta codificacion empleamos, como media:

    3 6 + 4 410

    = 3, 4 bits

    para representar cada mensaje.Notese que este esquema permite codificar una secuencia de numeros por simple

    yuxtaposicion, sin ambiguedades, por lo que no necesitaremos smbolos que actuen deseparadores, ya que estos alargaran la longitud media de los mensajes.

    En una codificacion, la longitud del codigo asignado a cada smbolo de entrada i debe sersuficiente para representar su cantidad de informacion. Dado que la entropa impone el lmiteinferior del numero de smbolos necesarios para la codificacion y que su valor no suele ser unentero, para aproximarse a la entropa deben emplearse codigos de longitud variable, como elque se muestra en el ejemplo y los que trataremos en detalle en el siguiente captulo.

    1.5. Entropa Condicionada

    Supongamos que tenemos dos variables aleatorias X e Y . Recordemos las distribuciones deprobabilidad mas usuales que podemos definir sobre dicha variable, teniendo n posibles sucesospara X y m para Y :

    1. Distribucion conjunta del suceso xi (i-esimo de X) y el suceso yj (j-esimo de Y ):

    P (xi, yj)

    13

  • 1.5. ENTROPIA CONDICIONADA

    2. Distribuciones marginales de X e Y : Representa la distribucion de X sobre todos losvalores de Y , y viceversa:

    P (xi) =mj=1

    P (xi, yj)

    P (yj) =ni=1

    P (xi, yj)

    3. Distribucion condicionada de X sobre Y y viceversa:

    P (xi/yj) =P (xi, yj)P (yj)

    P (yj/xi) =P (xi, yj)P (xi)

    Definiremos la entropa de las distribuciones que acabamos de referir:

    1.

    H(X,Y ) = ni=1

    mj=1

    P (xi, yj) log2(P (xi, yj))

    H(X/Y = yj) = ni=1

    P (xi/yj) log2(P (xi/yj))

    2. Haciendo la suma ponderada de los H(X/Y = yj) obtenemos la expresion de la EntropaCondicionada de X sobre Y:

    H(X/Y ) = ni=1

    mj=1

    P (yj)P (xi/yj)log2(P (xi/yj)) = ni=1

    mj=1

    P (xi, yj)log2(P (xi/yj))

    3. As como existe una Ley de la Probabilidad Total, analogamente se define la Ley deEntropas Totales que relaciona la entropa condicionada y la conjunta utilizando lasiguiente formula:

    H(X,Y ) = H(X) +H(Y/X)

    cumpliendose ademas, si X e Y son variables independientes:

    H(X,Y ) = H(X) +H(Y )

    14

  • 1.6. INFORMACION MUTUA ENTRE DOS VARIABLES

    4. Teorema de Disminucion de la Entropa:

    H(X/Y ) H(X)

    alcanzandose la igualdad si y solo si las variables X e Y son independientes.

    Este teorema representa una idea intuitiva clara: conocer algo acerca de la variable Ypuede que nos ayude a saber mas sobre X -lo cual se debera traducir en una reduccionde su entropa-, pero en ningun caso podra hacer que aumente la incertidumbre.

    1.6. Informacion Mutua entre dos Variables

    Shannon propuso una medida para la cantidad de informacion que aporta sobre una variableel conocimiento de otra. Se definira, pues, la informacion mutua entre las variables X e Y como:

    I(X,Y ) = H(Y )H(Y/X) = H(X) +H(Y )H(X/Y )Esto quiere decir que la cantidad de informacion que obtenemos del hecho de conocer X

    al medir la incertidumbre sobre Y es igual a la disminucion de entropa que este conocimientoconlleva. Sus propiedades son las siguientes:

    1. I(X,Y ) = I(Y,X)

    2. I(X,Y ) 0

    1.7. Redundancia

    Si una persona lee un mensaje en el que faltan algunas letras, normalmente puedereconstruirlo. Esto ocurre porque casi todos los smbolos de un mensaje en lenguaje naturalcontienen informacion que se puede extraer de los smbolos de alrededor -informacion que, en lapractica, se esta enviando dos o mas veces-, o en otras palabras, porque el lenguaje natural esredundante. Puesto que tenemos mecanismos para definir la cantidad de informacion que presentaun suceso, podemos intentar medir el exceso de informacion (redundancia) de un lenguaje.

    La redundancia de una variable V se define como:

    Red(V ) = 1 H(V )maxH(V )

    = 1 H(V )log2 n

    As, si los sucesos de V son equiprobables entonces H(V ) = maxH(V ) por lo que laredundancia es 0. Por el contrario, si existe un suceso con probabilidad 1 (y, por lo tanto,los restantes tendran probabilidad 0) entonces H(V ) = 0 y la redundancia valdra 1. Comoconsecuencia, el valor de la redundancia siempre toma valores entre 0 y 1.

    Ejemplo 1.7.1 Dados 2 sucesos {0,1} con probabilidades 1/4 y 3/4 respectivamente, el valorde la entropa sera:

    H(V ) = 14 log2

    14 3

    4 log2

    34

    = 0, 81 bits

    y la maxima entropa:

    15

  • 1.7. REDUNDANCIA

    maxH(V ) = log2 2 = 1 bit

    La redundancia sera, por tanto:

    Red(V ) = 1 H(V )maxH(V )

    = 1 0, 811

    = 0, 19

    . uunionsq

    La medida de la redundancia tambien puede definirse como:

    Red(V ) =vi=1

    P (i) longi vi=1

    P (i) log2 P (i)

    donde longi es la longitud del codigo que representa el i-esimo smbolo de entrada. El primersumando representa las longitudes de los codigos pesados en base a sus probabilidades deaparicion (es decir, la longitud media de los codigos). La segunda expresion es la entropa. As,la redundancia es una medida de la diferencia entre la longitud media del codigo y la cantidadmedia de informacion. Si una codificacion tiene una longitud media de codigos mnima para unadeterminada distribucion de probabilidad discreta, se dice que es una codificacion optima o deredundancia mnima. Dado que la entropa es constante para una distribucion de probabilidaddada, al minimizar la longitud media de los codigos se minimiza la redundancia.

    Principalmente hay dos aplicaciones fundamentales de la Teora de la Informacion,relacionadas directamente con la redundancia:

    Codigos de Redundancia Cclica (CRC): permiten introducir un campo de longitud mnimaen el mensaje que proporcione la mayor redundancia posible. As, si el mensaje originalresultase alterado, la probabilidad de que el CRC anadido siga siendo correcto es mnima.

    Compresion de datos: trata de eliminar la redundancia dentro de un archivo, considerandocada byte como un mensaje elemental, y codificandolo con mas o menos bits segunsu frecuencia de aparicion. En este sentido se trata de codificar exactamente la mismainformacion que transporta el archivo original, pero empleando un numero de bits lo maspequeno posible. Hablaremos con detalle sobre ello en el proximo captulo.

    16

  • Captulo 2

    Compresion de datos

    2.1. Introduccion

    Las tecnicas de compresion buscan la reduccion del numero de smbolos necesario paraalmacenar o transmitir informacion [6]. Dentro del ambito de las bases de datos documentales,las bibliotecas digitales y la Web, la compresion es un opcion muy atractiva pues permite reducirlos requerimientos de espacio y tiempo de transmision.

    A lo largo de los anos se han desarrollado numerosos metodos de compresion, desde tecnicasad hoc hasta metodos mas formales. Aunque sus resultados son de diferente caracter y cada unode ellos resulta adecuado en determinados entornos, todos los metodos se basan en el mismoprincipio: realizan la compresion mediante la eliminacion de la redundancia presente en losdatos originales [20]. Si la compresion es efectiva, la longitud de la concatenacion de todos loscodigos de salida sera menor que la longitud de la secuencia de smbolos inicial. Esto dependefundamentalmente de la cantidad de redundancia de la cadena a comprimir.

    El concepto de redundancia es fundamental en el ambito de la compresion. Se relaciona con laexistencia de cierta correlacion entre los elementos de informacion dentro de una coleccion. Estacorrelacion puede ser explotada para conseguir una representacion mas pequena de los datos. As,por ejemplo, en la mayora de los textos en ingles el caracter E aparece con mucha frecuencia,mientras que la Z es poco habitual. Esto es lo que se denomina redundancia alfabetica, y sugierela asignacion de codigos de tamano variable a las letras, de modo que el codigo correspondientea la E sea mas corto que el codigo para la Z. Un ejemplo de redundancia en las imagenes sepuede observar en el hecho de que los pxeles adyacentes tienden a tener colores similares.

    En general, los compresores de datos se pueden dividir en dos familias:

    Compresores con perdida (lossy): son utilizados para comprimir representacionesdigitales de senales analogicas, como por ejemplo sonidos o imagenes, donde una pequenaperdida de informacion no es apreciada por el sistema auditivo/visual humano. Dado quelos datos expandidos (descomprimidos) no tienen por que ser una replica exacta de losdatos originales, se pueden obtener ratios de compresion superiores.

    Compresores sin perdida (lossless): garantizan la regeneracion exacta de los datosoriginales tras la descompresion, ya que no se ha producido la perdida de ningun tipode informacion. Esta es la compresion utilizada sobre ficheros de texto, registros de unabase de datos, bases de datos documentales, colecciones de texto de proposito general,informacion de una hoja de calculo, etc. Ya que estos datos son comunmente llamadosdatos de texto, dichos compresores se denominan tambien compresores de texto.

    Teora de la Informacion: Modelado y Representacion 17

  • 2.2. TEORIA DE LA CODIFICACION

    El resto del captulo se estructura del siguiente modo: En una primera seccion, tras introducirla terminologa que se empleara en adelante, se define una serie de conceptos que se empleanhabitualmente para la evaluacion de los metodos de compresion. Posteriormente, se dedican lasSecciones 2.3 y 2.4 a una revision de diferentes metodos de compresion de textos, clasificandolosen estadsticos y de diccionario. Finalmente, en la Seccion 2.5 se recogen las conclusionesprincipales extradas del estudio realizado.

    2.2. Teora de la codificacion

    2.2.1. Definiciones

    Se denominan smbolos de entrada a cada una de las unidades basicas (caracteres, porejemplo) en que se divide la cadena (mensaje) a comprimir, y vocabulario (o alfabeto) de entradaal conjunto de smbolos de entrada diferentes (y sin repeticiones) que componen dicha cadena.Llamaremos n a la longitud total de la cadena, es decir, el numero total de smbolos de entradaa codificar, y v al numero de smbolos que componen el vocabulario de entrada.

    Ejemplo 2.2.1 En la cadena de entrada: ABCDEDEDDDFABBBBC hay 17 smbolos deentrada:

    {A,B,C,D,E,D,E,D,D,D, F,A,B,B,B,B,C}y el vocabulario esta formado por 6 smbolos: {A,B,C,D,E, F} uunionsq

    El proceso de codificacion hace corresponder a cada smbolo de entrada un codigo que lorepresentara en la cadena de salida. Cada codigo estara formado por una secuencia de smbolosde salida que pertenecen a un vocabulario de salida. Llamaremos d al numero de smbolos quecomponen dicho vocabulario.

    El conjunto de smbolos de salida asignados a un vocabulario de entrada forman lacodificacion de la cadena de entrada.

    Ejemplo 2.2.2 Una posible codificacion para el vocabulario de entrada del ejemplo anteriorpodra ser de la forma:

    {A(0), B(1), C(10), D(11), E(1100), F (1111)}

    donde el vocabulario de salida esta formado por d = 2 smbolos: 0 y 1. De este modo, la cadenacodificada quedara: 011011110011110011111111110111110 uunionsq

    El proceso de decodificacion permite realizar la operacion inversa a la codificacion; es decir,obtener la cadena original a partir de la secuencia codificada.

    Denominaremos esquema de codificacion al metodo que establece como llevar a cabo losprocesos de codificacion y decodificacion.

    Una codificacion es decodificable de forma unica si cada codigo es identificable dentrode la cadena codificada. Es decir, si cualquier cadena tiene una unica descomposicion enconcatenacion de smbolos de salida.

    Ejemplo 2.2.3 : (1) {A(00), B(01), C(10), D(11)} es decodificable de forma unica porque es delongitud fija.

    (2) {A(0), B(10), C(110), D(1110)} es decodificable de forma unica porque el 0 los separa.

    18

  • 2.2. TEORIA DE LA CODIFICACION

    (3) {A(0), B(01), C(001), D(0001)} NO es decodificable de forma unica.(4) {A(0), B(01), C(011), D(0111)} es decodificable de forma unica.(5) {A(0), B(1), C(10), D(11)} (dado que la cadena 11 puede decodificarse como D o como

    BB) la codificacion no es decodificable de forma unica. uunionsq

    Un codigo decodificable de forma unica es instantaneo (tambien llamado de prefijo unicoo libre) si ningun codigo es prefijo de otro.

    Ejemplo 2.2.4 En el ejemplo anterior, (2) es instantaneo, pero (4) no lo es. uunionsq

    Ejemplo 2.2.5 La codificacion:

    {A(1), B(1000), C(00)}

    es decodificable de forma unica (observese que una cadena de la forma 100000 solo puededecodificarse como BC); sin embargo, no es instantanea (dado que el codigo asignado a Aes prefijo del codigo correspondiente a B).Por el contrario:

    {A(1), B(01), C(00)}s es una codificacion de prefijo libre. uunionsq

    Toda codificacion de prefijo libre es decodificable de forma inmediata; es decir, la cadenacodificada puede dividirse en codigos sin necesidad de hacer un analisis hacia adelante.Podemos reconocer directamente un codigo sin inspeccionar los siguientes codigos que formanla cadena comprimida.

    Ejemplo 2.2.6 Para decodificar la cadena 10000001, donde la codificacion es de la forma:

    {A(1), B(1000), C(00)}

    la lectura del primer smbolo 1 no es suficiente para confirmar que el smbolo de entrada sea A.De hecho, en este caso, no se puede determinar hasta que se haya ledo el ultimo smbolo (si lacadena de ceros hubiese sido de longitud impar entonces el primer codigo sera 1000 y, por lotanto, correspondera al smbolo de entrada B).

    Este problema no sucede en las codificaciones de prefijo libre, dado que un codigo nuncapuede estar contenido en otro. Una vez reconocido un codigo dentro del texto se tiene la certezade que es un codigo final, sin necesidad de tener que comprobar si podra ser parte de otro demayor longitud. uunionsq

    Definicion 2.2.1 Desigualdad de Kraft-McMillan: Sea un conjunto de c cadenas de entrada yd smbolos de salida. Entonces existe una codificacion instantanea sii

    ci=1

    dli 1

    donde li es el tamano de la cadena codificada correspondiente a la cadena de entrada i. uunionsq

    19

  • 2.2. TEORIA DE LA CODIFICACION

    Ejemplo 2.2.7 Existe un codigo binario para 6 mensajes de manera que dos de ellos secodifiquen con 2 bits, tres con 3 bits y uno con 4 bits?

    22 + 22 + 23 + 23 + 23 + 24 = 0,9375 1con lo que sabemos que existe. Sin embargo, esto no quiere decir que todas las codificacionesque cumplan estas caractersticas sean instantaneas. uunionsq

    Una codificacion de prefijo libre es de prefijo mnimo si, dado un smbolo (o secuencia desmbolos) de salida X que sea prefijo de algun codigo, Xy debe ser necesariamente un codigoo un prefijo de otro codigo, donde y representa a cada uno de los smbolos del vocabulario desalida.

    Ejemplo 2.2.8 La codificacion:

    {A(00), B(01), C(10)}

    es un ejemplo de codificacion de prefijo libre que no es mnima. Esto se debe a que como 1es prefijo del codigo 10 se requerira tambien que 11 fuese codigo o prefijo, y esto no sucede.Intuitivamente, la restriccion de minimalidad evita el uso de codigos mas largos de lo necesario.En el ejemplo anterior, el codigo 10 puede sustituirse por 1, obteniendose as una codificacionde prefijo mnimo con codigos mas cortos. uunionsq

    Todas las codificaciones que se trataran a lo largo de este estudio son codificaciones de prefijomnimo.

    Se dice que una codificacion es asintoticamente optima si tiene la propiedad de que laredundancia tiende a 0 cuando la entropa de la distribucion de probabilidad es muy grande. Esdecir, la optimalidad asintotica garantiza que la longitud media de los codigos se aproxima almnimo teorico.

    2.2.2. Evaluacion de los metodos de compresion de datos

    A la hora de evaluar las tecnicas de compresion de datos deben tenerse en cuenta tresfactores principales: la redundancia [21] (comentada en el captulo anterior), la complejidad delos algoritmos de codificacion y decodificacion y el porcentaje (ratio) de compresion alcanzado.Todas estas medidas asumen que el documento a comprimir esta formado por una secuenciade n smbolos pertenecientes a un vocabulario de v elementos. A cada smbolo i le correspondeuna probabilidad constante pi determinada por la frecuencia de aparicion del smbolo i en latotalidad del documento. Ademas, los metodos de compresion que se tratan aqu consideran quelos smbolos de entrada son estadsticamente independientes.

    Ratio de compresion

    La cantidad de compresion alcanzada por un esquema de codificacion se puede medir comoun porcentaje de compresion. El termino ratio de compresion C compara la longitud de la cadenaobtenida tras la codificacion respecto a la longitud de la cadena de entrada. As, si la longitudde la cadena de entrada es u bytes y la de la cadena de salida es de c bytes, el porcentaje decompresion se obtiene como (100 c / u).

    20

  • 2.3. METODOS ESTADISTICOS

    Complejidad

    Aunque la meta principal de la compresion de datos es desarrollar tecnicas que mejoren cadavez mas el porcentaje de compresion, otro aspecto que no se debe descuidar es la complejidadde los algoritmos asociados a la tecnica de compresion. La eficacia de las tecnicas de compresionviene dada no solo por el porcentaje de compresion alcanzado sino tambien por la eficienciacomputacional (tanto temporal como espacial) de los algoritmos que llevan a cabo los procesosde codificacion, compresion y descompresion.

    2.3. Metodos estadsticos

    Los primeros metodos de compresion, como el codigo Braille, asignaban codigos de longitudfija a los smbolos que forman la cadena a comprimir. Las codificaciones de tamano fijo son utilespor su sencillez pero son redundantes.

    Con el fin de conseguir mejores ratios de compresion disminuyendo en lo posible laredundancia (y, por lo tanto, aproximandose al mnimo teorico determinado por la entropa)se adopto la Ley general de compresion, basada en asignar codigos de salida cortos a lossmbolos de entrada mas comunes, y codigos largos a los menos habituales. Este es el principioseguido por los metodos estadsticos, de modo que los codigos generados son de longitud variable.

    Los metodos estadsticos (tambien llamados de sustitucion de orden cero o basados ensmbolos) pueden describirse en terminos de unmodelo asociado a la cadena de datos a comprimiry un esquema de codificacion. El modelo asigna probabilidades a los smbolos que forman lacadena de entrada y, posteriormente, el esquema de codificacion genera un codigo de salida paracada smbolo de entrada en funcion de estas probabilidades.

    Los modelos de datos se pueden clasificar en:

    Modelos no adaptativos (estaticos): Son aquellos donde el mapeo del vocabulario de entradaal de salida es fijo, de modo que un mensaje dado siempre se representa con el mismo codigode salida cada vez que aparece en la cadena a codificar. Los modelos estaticos son rgidosy no modifican sus operaciones, parametros o tablas en funcion de los datos a comprimir.Utilizan tablas de probabilidades prefijadas de antemano, independientes de la cadenade entrada. El uso de compresores basados en modelos no adaptativos es muy especfico;resultan utiles en caso de que todos los datos sean de un mismo tipo. Un ejemplo podraser el estandar JPEG para compresion de imagenes.

    El problema de estos modelos es el riesgo de que se apliquen sobre una cadena de entradaque no se ajuste perfectamente al tipo de datos para el que fueron creados. Es lo quesucede, por ejemplo, con la utilizacion del codigo Morse para codificar un fichero formadoen su mayor parte por valores numericos. En este caso, dado que los numeros tienen pocaprobabilidad de aparicion en un texto estan asociados a codigos mas largos.

    Modelos semiadaptativos (probabilsticos): utilizan probabilidades obtenidas a partir de lacadena a comprimir. Se realizan dos pasadas: en la primera se lee la cadena completa paracalcular la frecuencia de aparicion de cada smbolo y en la segunda el esquema realiza lacodificacion. Por ello, los datos a comprimir deben estar almacenados o transmitirse dosveces, lo cual puede ser un inconveniente en ciertos entornos.

    Este tipo de modelos tiene dos inconvenientes. Por un lado, se necesita consumir untiempo extra para calcular las probabilidades de aparicion de los smbolos en la cadena a

    21

  • 2.3. METODOS ESTADISTICOS

    comprimir. Por otro lado, el tamano del fichero comprimido se ve incrementado debido a lanecesidad de transmitir al decodificador el modelo utilizado (ademas del texto codificado),dado que la codificacion de un smbolo vara para cada cadena de entrada.

    Modelos adaptativos (dinamicos): realizan una estimacion de las probabilidades de lossmbolos que componen el vocabulario de entrada en el momento de la codificacion. Elcodificador aprende las caractersticas de la cadena de entrada. Un modelo adaptativopodra comenzar por considerar, por ejemplo, que todos los smbolos tienen la mismafrecuencia; a medida que se va comprimiendo la cadena de entrada cuenta las aparicionesde cada smbolo y va cambiando sus frecuencias (y, por lo tanto, el modelo).

    Las tecnicas de compresion basadas en modelos adaptativos combinan dos aspectos clave:codifican en una sola pasada la cadena de entrada (el mapeado se realiza dinamicamentedurante la transmision), y pueden comprimir distintas cadenas de entrada sin necesidadde trabajar con un tipo de datos particular (como textos en ingles, por ejemplo).

    El resto de esta seccion se dedica a presentar diferentes tecnicas de compresion estadsticasbasadas en modelos semiadaptativos (en concreto, se estudian las codificaciones Shannon-Fano,Huffman y Aritmetica). Se dedica una mayor atencion a la codificacion Huffman por ser elesquema mas empleado actualmente para la compresion de textos en lenguaje natural.

    2.3.1. Codificacion de Shannon-Fano

    La codificacion de Shannon-Fano fue el primer metodo estadstico que logro una buenacodificacion de longitud variable.

    El modo de construir los codigos es el siguiente: los smbolos de entrada i y sus probabilidadespi se ordenan de forma decreciente. La lista obtenida se divide para formar dos grupos, de modoque la probabilidad total de ambos grupos tenga un valor similar. A cada smbolo del primergrupo se le asigna un 1 como primer dgito, y a los smbolos de la segunda mitad se les asignancodigos comenzando en 0. Este proceso se realiza recursivamente subdividiendo cada grupo enbase al mismo criterio hasta que cada subconjunto posea un solo elemento.

    Ejemplo 2.3.1 En la Tabla 2.1 se muestra la codificacion Shannon-Fano para un vocabulariode entrada formado por 6 smbolos: {A,B,C,D,E, F} y cuyas probabilidades de aparicion enel texto son las que se muestran en dicha tabla.

    Smbolo Prob. Paso 1 Paso 2 Paso 3A 0,25 1 1B 0,25 1 0C 0,125 0 1 1D 0,125 0 1 0E 0,125 0 0 1F 0,125 0 0 0

    Tabla 2.1: Ejemplo de codificacion Shannon-Fano

    En el Paso 1 se divide el vocabulario en dos subconjuntos con frecuencia similar: {A,B} y{C,D,E, F}. A los dos smbolos del primer conjunto se les asigna un 1 como primer smbolo

    22

  • 2.3. METODOS ESTADISTICOS

    de salida, mientras que a los smbolos del segundo conjunto se les asigna un 0. En el Paso 2 sedivide cada conjunto anterior en dos subconjuntos y se sigue el mismo procedimiento. De estemodo, el conjunto {A,B} se divide en {A} y {B} y se asigna un nuevo smbolo de salida a cadauno (con valor 1 y 0, respectivamente). Igualmente se divide el conjunto {C,D,E, F} en dossubconjuntos {C,D} y {E,F} y estos, a su vez, (en el Paso 3) se subdividen hasta que todoslos conjuntos esten formados por un unico elemento.

    El codigo de salida para cada smbolo de entrada estara formado por la concatenacion de losdiferentes smbolos asignados en cada paso, quedando una codificacion de la forma:

    {A(11), B(10), C(011), D(010), E(001), F (000)}

    uunionsq

    El algoritmo de Shannon-Fano da lugar a un codigo de prefijo mnimo, aunque no siempre setrata de una codificacion optima. La longitud media de los codigos se encuentra entre la entropaH y la entropa mas un smbolo, dado que la longitud de cada codigo i oscila entre logd pi (silos subgrupos tienen exactamente la misma probabilidad) y ( logd pi + 1).

    Ejemplo 2.3.2 La codificacion obtenida para el ejemplo anterior es optima, debido a que todoslos grupos tenan exactamente la misma probabilidad. As, la longitud media de los codigos es:

    2 (0, 25 2) + 4 (0, 125 3) = 2, 5

    (hay 2 smbolos de entrada (A y B) cuya probabilidad es 0,25 y donde el numero de smbolosque componen el codigo de salida es 2, y hay 4 smbolos (C,D,E, F ) con probabilidad 0,125 ycuyos codigos de salida son de longitud 3), y el valor de la entropa es:

    [2 (0, 25 log2 0, 25) + 4 (0, 125 log2 0, 125)] = 2, 5

    uunionsq

    2.3.2. Codificacion Huffman

    La codificacion Huffman (tambien denominada codificacion de redundancia mnima) fuedescrita por primera vez por David A. Huffman en 1952 [14]. Debido a su facilidad de computo,es ampliamente utilizada en programas de compresion como gzip.

    Al igual que suceda para la codificacion Shannon-Fano, Huffman asigna a los smbolos deentrada mas frecuentes un codigo de compresion de menor longitud a costa de asignar codigosde mayor longitud a los menos frecuentes. La diferencia entre ambos metodos es que, mientrasque la generacion de codigos en Shannon-Fano comienza para los smbolos de entrada masfrecuentes, la codificacion Huffman construye los codigos de abajo a arriba (desde los smbolosde entrada menos probables hasta los mas probables). En general, la codificacion Huffman dalugar a mejores codificaciones que Shannon-Fano.

    El proceso de codificacion de Huffman se compone de varias fases. En primer lugar esnecesario calcular la frecuencia de aparicion de cada smbolo de entrada, para posteriormenteconstruir del arbol de Huffman que asignara un codigo a cada uno de estos smbolos. Finalmente,se recorre una vez mas el texto a comprimir sustituyendo cada elemento del texto por el codigoasignado mediante el arbol.

    A continuacion se presentan con mas detalle cada una de estas fases.

    23

  • 2.3. METODOS ESTADISTICOS

    Construccion del arbol Huffman

    Para construir un codigo Huffman normalmente se utiliza un arbol que se construye a partirde las probabilidades de los smbolos de entrada que deseamos codificar y una lista donde semantienen los nodos que todava no han sido procesados. El proceso de construccion de dichoarbol se realiza de la siguiente forma:

    1. Crear tantos nodos (que seran las hojas del arbol) como smbolos tenga el vocabulario deentrada. En cada nodo se almacena el smbolo y su probabilidad. Estos nodos forman lalista inicial de nodos sin procesar.

    2. Extraer d nodos de la lista de nodos sin procesar que tengan las probabilidades mas bajas,siendo d el numero de smbolos que componen el vocabulario de salida. As, para unacodificacion orientada a bit, donde el vocabulario de salida es {0, 1}, se toman los dosnodos de menor probabilidad.

    3. Crear en el arbol un nuevo nodo que sea padre de los nodos seleccionados e incluirlo en lalista de nodos sin procesar. Este nodo no tiene asociado ningun smbolo y su probabilidadsera la suma de las probabilidades de sus nodos hijo.

    4. Repetir los pasos 2 y 3 hasta que tengamos en la lista un numero de nodos sin procesarinferior a d. La suma de las probabilidades de estos nodos debe ser igual a 1, y seran loshijos de un nuevo nodo en el arbol denominado nodo raz del arbol Huffman. Puesto queen cada iteracion extraemos d nodos de la lista e insertamos otro, el numero de iteracionesnecesarias para construir un arbol con n hojas (el numero de smbolos que deseamoscodificar) es d nd1e.

    Ejemplo 2.3.3 Veamos como construir el arbol Huffman para un vocabulario de entradaformado por 5 smbolos: {A,B,C,D,E} con pesos 0, 40, 0, 18, 0, 15, 0, 15 y 0, 12,respectivamente, y donde el vocabulario de salida es {0, 1}. El proceso se realiza en los 5 pasossiguientes(representados en la Figura 2.1):

    1. El primer paso (Figura 2.1-A) consiste en crear una lista de nodos sin procesar formadapor todos los nodos hoja.

    2. Se extraen los d = 2 nodos de menor peso correspondientes a los smbolos D y E.

    Es importante indicar aqu que tambien podra haberse optado por seleccionar el nodo Cen lugar del D, lo que dara lugar a un arbol diferente. Esta circunstancia se da siempreque haya smbolos equiprobables. Por lo tanto, la codificacion Huffman no es unica. Sinembargo, desde el punto de vista de la compresion de datos el resultado es equivalente.Dado que los smbolos intercambiables (C y D en este caso) tienen exactamente la mismaprobabilidad, la compresion alcanzada para la secuencia de entrada sera la misma.

    Siguiendo el ejemplo, dado que los pesos de los nodos D y E son 0, 15 y 0, 12respectivamente, insertamos un nuevo nodo en la lista, sin smbolo asociado y con unpeso igual a 0, 27 (Figura 2.1-B).

    3. Para construir el segundo subarbol se extraen los nodos B y C (Figura 2.1-C) y se generaun nuevo nodo intermedio con valor 0, 33 que se introduce en la lista de nodos sin procesar.

    24

  • 2.3. METODOS ESTADISTICOS

    4. A continuacion se extraen de la lista los nodos de peso 0, 27 y 0, 33, de modo que losdos subarboles forman un arbol mayor (Figura 2.1-D) cuyo nodo padre (que tambien seintroduce en la lista de nodos sin procesar) toma el valor 0, 60.

    5. Por ultimo, se extraen los dos nodos restantes (el correspondiente al smbolo A y el nodointermedio de valor 0, 60) y se genera el nodo raz de valor 1. El arbol Huffman completose presenta en la Figura 2.1-E.

    uunionsq

    A, 0.40 B, 0.18 C, 0.15 D, 0.15 E, 0.12

    A, 0.40 B, 0.18 C, 0.15

    D, 0.15 E, 0.12

    0.27

    A, 0.40

    B, 0.18 C, 0.15 D, 0.15 E, 0.12

    0.270.33

    A, 0.40

    B, 0.18 C, 0.15 D, 0.15 E, 0.12

    0.270.33

    0.60

    A, 0.40

    B, 0.18 C, 0.15 D, 0.15 E, 0.12

    0.270.33

    0.60

    1.0

    (A)

    (B)

    (C)

    (D)

    (E)

    0 1

    10

    0 1 0 1

    Figura 2.1: Ejemplo de construccion de un arbol Huffman

    Procesos de codificacion, compresion y descompresion

    Una vez construido el arbol ya se puede llevar a cabo el proceso de codificacion. Para ello, encada nivel del arbol se etiquetan las ramas con los diferentes valores del vocabulario de salida. Elcodigo correspondiente a cada smbolo de entrada estara formado por la secuencia de smbolosde salida asignados a las ramas que unen la raz con la hoja que representa dicho smbolo deentrada.

    Ejemplo 2.3.4 Siguiendo el Ejemplo 2.3.3, podemos etiquetar las ramas izquierdas del arbolcon el smbolo de salida 0 y las ramas derechas con el smbolo de salida 1 (ver Figura 2.1-E).De esta forma, la codificacion quedara:

    {A(0), B(100), C(101), D(110), E(111)}uunionsq

    25

  • 2.3. METODOS ESTADISTICOS

    Como puede observarse en este ejemplo, la codificacion obtenida es de prefijo libre puesningun codigo esta contenido en otro. Esta propiedad se cumple siempre, dado que los smbolosde entrada estan representados por nodos hoja y no por nodos internos del arbol.

    Una vez calculados los codigos, el proceso de compresion consiste en generar una cadena desalida leyendo de nuevo la cadena de entrada y reemplazando cada uno de sus smbolos con elcodigo asignado.

    Ejemplo 2.3.5 Para la cadena de entrada ABACDE, la secuencia de codigos de salidaresultante sera: 01000101110111. uunionsq

    A la hora de realizar la descompresion, se asocia cada smbolo del texto original con una hoja,de modo que el arbol completo es una representacion del vocabulario del texto. El algoritmo deHuffman determina el arbol que minimiza la longitud del fichero comprimido. Ver [6, 22] paramas detalle.

    Ejemplo 2.3.6 Consideremos un texto con vocabulario A,B,C,D,E cuyas frecuencias son0, 25, 0, 25, 0, 20, 0, 15, 0, 15. En la figura 2.2 se muestra un posible arbol Huffman, determinadopor el algoritmo de Huffman. En dicha figura puede observarse como A se codifica con 01, Bcon 10, C con 11, D con 000 y E con 001. uunionsq

    Figura 2.2: Arbol de Huffman

    El proceso de decodificacion se debe realizar utilizando el mismo arbol Huffman generadodurante la codificacion. Dado que la compresion Huffman no es unica, tal como ya se hamencionado, para que en el momento de la decodificacion se pueda reconstruir exactamenteel mismo arbol, es necesario que la cadena comprimida posea suficiente informacion para poderconocer el codigo asignado a cada smbolo de entrada. Aunque se podra optar por enviar en lacadena de salida el vocabulario de entrada y sus codigos (ademas del texto comprimido), estasolucion penaliza considerablemente el porcentaje de compresion sobre todo cuando la cadena acomprimir no es muy grande. En este caso, el porcentaje de espacio ocupado por el vocabulariopuede ser mayor incluso al del texto comprimido. Existen otras soluciones mas eficientes, comose comentara con detalle en el apartado dedicado a los arboles Huffman canonicos. En este casono se enva en la cadena de salida el arbol Huffman, sino unicamente unos cientos de bytes deinformacion extra.

    Una vez regenerado el arbol, el proceso de decodificacion es simple. El texto comprimido selee smbolo a smbolo mientras se recorre el arbol partiendo de la raz y siguiendo la rama cuyovalor coincida con el smbolo ledo. Cuando se alcanza una hoja, se obtiene el smbolo de entradaasociado.

    26

  • 2.3. METODOS ESTADISTICOS

    Gracias a la propiedad de prefijo libre, la decodificacion de un codigo puede realizarse sinnecesidad de analizar los codigos que le siguen dado que se reconoce inmediatamente su final.

    Ejemplo 2.3.7 Utilizando el arbol de la Figura 2.1-E, vamos a decodificar la cadenacomprimida del ejemplo anterior: 01000101110111. El smbolo de salida 0 nos indica que elprimer smbolo de entrada es A. Para obtener el siguiente smbolo de entrada nos situamos denuevo en la raz del arbol y leemos caracter a caracter hasta alcanzar de nuevo una hoja. Eneste caso, una vez ledo 100 habremos alcanzado la hoja correspondiente al smbolo de entradaes B. Este proceso se repite hasta que no quedan mas smbolos por decodificar. uunionsq

    Redundancia del codigo

    El algoritmo de Huffman siempre produce una codificacion optima de redundancia mnima[10]. Su diferencia respecto a la entropa es debida unicamente a que Huffman no puede generarun codigo utilizando partes fraccionarias de smbolos de salida. As, si la cantidad de informacionde un smbolo de entrada es de 2, 5 smbolos, el algoritmo de Huffman generara un codigoformado por 3 smbolos de salida. Generalizando, si la cantidad de informacion correspondientea un smbolo de entrada i con probabilidad pi es ( logd pi), Huffman utilizara d logd piesmbolos; es decir, nunca se utilizara mas de un smbolo extra por codigo debido a los ajustespor redondeo mencionados.

    Por lo tanto, la longitud media de los codigos Huffman asignados a un texto cuyo vocabulariode entrada esta formado por v smbolos es:

    vi=1

    pi dlogd pie vi=1

    pi logd pi + 1

    Ejemplo 2.3.8 Vamos a analizar la redundancia de la codificacion generada para elEjemplo 2.3.3.

    Bajo codificacion Huffman, la longitud media de los codigos se puede calcular del mismomodo que el utilizado en el Ejemplo 2.3.2:

    (1 0, 40) + (3 0, 18) + (3 0, 15) + (3 0, 15) + (3 0, 12) = 2, 2o, por tratarse de un arbol donde el peso de sus nodos es la suma del peso de sus hijos (frecuenciasde las palabras asociadas), tambien puede calcularse sumando los valores asignados a los nodosinternos del arbol:

    0, 27 + 0, 33 + 0, 60 + 1 = 2, 2

    Por otro lado, la entropa es:

    (0, 40log2 0, 40)(0, 18log2 0, 18)(0, 15log2 0, 15)(0, 15log2 0, 15)(0, 12log2 0, 12) = 2, 16

    Como se puede observar, la diferencia entre la longitud media y la entropa es inferior a 1smbolo. uunionsq

    La eficiencia de la codificacion Huffman se ve particularmente afectada cuando existenalgunos smbolos de entrada con muy alta probabilidad. De forma mas general, Gallager [11]

    27

  • 2.3. METODOS ESTADISTICOS

    ha demostrado que el lmite superior de la redundancia de la codificacion Huffman binaria (esdecir, cuando el numero de smbolos de salida es 2) es:

    pb + log2 [ (2 log2 e) / e ] ' (pb + 0, 086)donde pb es la probabilidad del smbolo mas probable. Capocelli et al. determinaron lmites masajustados que los de Gallager para algunas distribuciones de probabilidad [9].

    Por otro lado, Buro [8] establecio el lmite superior de la longitud de un codigo Huffman enbase a las probabilidades de los dos smbolos menos probables p1 y p2, como:

    mn{

    log

    (+ 1

    p1+ p2

    ), v 1

    }siendo = (1 +

    5)/2.

    Arbol Huffman canonico

    Como ya se ha mencionado anteriormente, la codificacion Huffman no es unica. As, en elEjemplo 2.3.3 podra haberse seleccionado el nodo C en lugar del D, en cuyo caso el arbolresultante sera diferente. El intercambio de los subarboles de un nodo intermedio da lugar aun arbol distinto siempre que los subarboles sean diferentes en estructura, aunque la longitudmedia final del codigo no se vea afectada.

    Para garantizar que, dado un vocabulario de entrada, siempre se obtiene el mismo arbolHuffman (y, por lo tanto, los mismos codigos), muchas aplicaciones optan por generar un arbolcanonico que impone un orden particular de codificacion [5, 13, 24].

    Un arbol Huffman es canonico cuando el peso del subarbol izquierdo de cualquier nodo nuncaes menor que el del subarbol derecho, y todas las hojas se colocan de izquierda a derecha enorden creciente de probabilidad.

    Ejemplo 2.3.9 El arbol canonico para el Ejemplo 2.3.3 se presenta en la Figura 2.3. Lacodificacion canonica queda la forma:

    {C(000), B(001), E(010), D(011), A(1)}uunionsq

    A, 0.40

    E, 0.12 D, 0.15C, 0.15 B, 0.18

    0.33 0.27

    0.60

    1.0

    0 1

    0 1

    0 10 1

    Figura 2.3: Arbol canonico para el Ejemplo 2.3.3

    La codificacion canonica se caracteriza porque el conjunto de codigos de la misma longitudson las representaciones binarias de enteros consecutivos. Esto puede observarse en el ejemplo

    28

  • 2.3. METODOS ESTADISTICOS

    anterior, donde a los 4 smbolos de entrada codificados con 3 bits (C,B,E,D) se les han asignadolos codigos cuyo valores enteros son 0, 1, 2 y 3, respectivamente.

    Esta caracterstica de secuencia numerica aporta importantes ventajas a la codificacion.Utilizando un arbol canonico no es necesario construir el arbol Huffman para la codificacionni para la decodificacion, mejorando consecuentemente la eficiencia de estos procesos tanto entiempo de computacion como en espacio. De hecho, para la construccion de la codificacionno es necesario llevar a cabo la generacion de los codigos. Basta con conocer la longitud delcodigo asignado a cada smbolo de entrada y cual es el valor del codigo mas pequeno para cadalongitud. Un algoritmo para el calculo de las longitudes de los codigos Huffman para los smbolosque forman una cadena de entrada puede verse en [24].

    De este modo, la codificacion canonica puede representarse mediante un array S de pares dela forma (xj , yj) siendo 1 j l, donde xj representa el numero de codigos de longitud j, yj elvalor numerico del primer codigo de longitud j, y l es la altura del arbol.

    Ejemplo 2.3.10 Para el ejemplo anterior, el arbol podra representarse de la forma:

    S = {(1, 1), (0, ), (4, 0)}

    porque hay 1 smbolo de entrada (A) cuyo codigo es de longitud 1 y su codigo es 1, no haycodigos de longitud 2, y hay 4 codigos de longitud 3 que comienzan por el valor 0. uunionsq

    La informacion aportada por el array anterior, junto con una lista de los smbolos quecomponen el vocabulario de entrada ordenados decrecientemente por frecuencia, es suficientepara la generacion de la codificacion Huffman canonica en cualquier instante. Gracias a laspropiedades del arbol canonico, no es necesario almacenar el vocabulario con sus codigos,propiedad especialmente interesante cuando se trabaja con grandes vocabularios ya que, comoya se ha mencionado, el vocabulario tiene que almacenarse con el texto, de modo que el tamanototal del fichero comprimido sera la suma del tamano del texto comprimido y del vocabulario.

    2.3.3. Codificacion aritmetica

    La codificacion aritmetica es una tecnica sofisticada que alcanza una compresion muyproxima a la determinada por la entropa.

    Bajo esta codificacion, la cadena de entrada se representa por un unico numero real quepertenece al intervalo [0, 1). El metodo parte de una lista desordenada con los smbolos quecomponen el vocabulario de entrada y sus probabilidades de aparicion en el texto a comprimir. Amedida que se realiza la codificacion del texto, el intervalo inicial [0, 1) se divide en subintervalosmas pequenos. El comienzo de cada subintervalo y su tamano dependen de la posicion que ocupeel smbolo de entrada en el vocabulario y de su probabilidad. Veamoslo con un ejemplo:

    Ejemplo 2.3.11 Supongamos un vocabulario de entrada formado por 5 smbolos{A,B,C,D,E} cuyas probabilidades de aparicion en el texto se muestran en la Tabla 2.2.

    A cada smbolo de entrada se le hace corresponder la parte proporcional del intervalo [0, 1)en funcion de la posicion que ocupa en el vocabulario y de su probabilidad inicial. As, tal comose muestra en la ultima columna de la Tabla 2.2, al smbolo A le corresponden los primeros 2/10del intervalo (es decir, el intervalo [0, 0,2)), al smbolo B le corresponden los 4/10 siguientes (esdecir, el intervalo [0,2, 0,6)), y as sucesivamente.

    Una vez determinado el rango del intervalo que corresponde a cada smbolo puede comenzarla codificacion.

    29

  • 2.3. METODOS ESTADISTICOS

    Smbolo Prob. Prob.Acumulada Rango TamanoA 2/10=0,2 0,2 [0, 0,2) 0,2B 4/10=0,4 0,6 [0,2, 0,6) 0,4C 1/10=0,1 0,7 [0,6, 0,7) 0,1D 2/10=0,2 0,9 [0,7, 0,9) 0,2E 1/10=0,1 1,0 [0,9, 1,0) 0,1

    Tabla 2.2: Ejemplo de primera particion de la codificacion aritmetica

    En la Figura 2.4 se muestran los diferentes subintervalos generados para la codificacion deuna cadena de entrada de la forma AADBE. Tomando en orden los smbolos que componen lacadena de entrada, los pasos seguidos por la codificacion aritmetica son los siguientes:

    A dado que al smbolo A le corresponden los primeros 2/10 del intervalo, entonces el intervaloinicial [0, 1) se reduce a [0, 0,2).

    A se reduce el intervalo anterior [0, 0,2) a sus 2/10 primeras partes; es decir, al intervalo[0, 0,04).

    D dado que el rango del smbolo D (tal como se indica en la Tabla 2.2) es [0,7, 0,9), elintervalo obtenido en el paso anterior debe reducirse a sus 2/10 partes, pero comenzandoen el 70% de la distancia desde el extremo izquierdo del intervalo. Es decir, el nuevointervalo es [0,028, 0,036).

    B al smbolo B le corresponden 4/10 partes del intervalo anterior [0,028, 0,036), comenzandoen el 20% de la distancia desde el extremo izquierdo. Es decir, el nuevo intervalo es[0,0296, 0,0328).

    E se determina el intervalo final como el ultimo 1/10 del intervalo anterior. Es decir[0,03248, 0,0328).

    El propio intervalo [0,03248, 0,0328), o cualquier valor c dentro del mismo, puede usarse pararepresentar la cadena de entrada. uunionsq

    La determinacion de los sucesivos subintervalos a que da lugar la codificacion de una cadenade entrada (en concreto, para conocer su tamano nuevo tamano, el extremo izquierdo nuevo izdoy derecho nuevo dcho) se pueden utilizar las formulas que se presentan a continuacion:

    nuevo izdo = previo izdo + smbolo izdo * previo tamano

    nuevo tamano = previo tamano * smbolo tamano

    nuevo dcho = nuevo izdo + nuevo tamano

    donde previo izdo y previo tamano indican el valor del lmite izquierdo del subintervaloanteriormente obtenido y su tamano, respectivamente, y smbolo tamano indica el tamano (esdecir, la probabilidad de aparicion) del smbolo de entrada que se esta codificando, tal como semuestra en la Tabla 2.2.

    El tamano del subintervalo final determina el numero de smbolos necesario para especificarun valor en ese rango. As, el numero de smbolos para especificar un subintervalo de [0, 1) de

    30

  • 2.3. METODOS ESTADISTICOS

    A

    B

    C

    D

    E

    [0, 0.04)

    [0.04, 0.12)

    [0.12, 0.14)

    [0.14, 0.18)

    [0.18, 0.2)

    A

    B

    C

    D

    E

    [0, 0.008)

    [0.008, 0.024)

    [0.024, 0.028)

    [0.028, 0.036)

    [0.036, 0.04)

    A

    B

    C

    D

    E

    [0.028, 0.0296)

    [0.0296, 0.0328)

    [0.0328, 0.0336)

    [0.0336, 0.0352)

    [0.0352, 0.036)

    A

    B

    C

    D

    E

    [0, 0.2)

    [0.2, 0.6)

    [0.6, 0.7)

    [0.7, 0.9)

    [0.9, 1.0)

    A A D B E

    A

    B

    C

    D

    E

    [0.0296, 0.03024)

    [0.03024, 0.03152)

    [0.03152, 0.03184)

    [0.03184, 0.03248)

    [0.03248, 0.0328)

    Figura 2.4: Codificacion aritmetica de la cadena AADBE

    tamano s es ( logd s). Por otro lado, dado que el tamano del subintervalo correspondiente acada smbolo viene dado por su probabilidad (ver Tabla 2.2), el tamano del subintervalo final esel producto de las probabilidades de los smbolos en la cadena de entrada (es decir, s =

    ni=1 pi).

    De este modo, el numero de smbolos para especificar un valor del subintervalo correspondientea una cadena de entrada es:

    logd s = ni=1

    logd pi

    y el tamano medio ponderado para las cadenas formadas por smbolos del vocabulario de entradaes:

    vi=1

    pi logd pi

    Esto demuestra que la codificacion aritmetica alcanza una compresion que es casiexactamente la predicha por la entropa de la cadena de entrada. La diferencia viene dada,basicamente, por el uso de aritmetica de longitud fija.

    Respecto a la decodificacion, para realizarse debe conocerse el modelo usado por el codificador(es decir, el vocabulario de entrada y las probabilidades de sus smbolos) y el numero c elegido porel codificador dentro del intervalo final. La decodificacion consiste en una serie de comparacionesdel valor c con los rangos de los smbolos del vocabulario de entrada, simulando las operacionesdel codificador.

    31

  • 2.4. METODOS DE DICCIONARIO

    Ejemplo 2.3.12 Para el ejemplo anterior, si el codificador hubiese elegido el valor dec = 0, 0325, como esta entre 0 y 0, 2, el decodificador sabra que el primer smbolo es una A,pues el rango [0, 0,2) corresponde a la A. El decodificador ahora puede deducir que el siguientesmbolo se correspondera con alguno de los intervalos [0, 0,04) si es A, [0,04, 0,12) si es B,[0,12, 0,14) si es C, [0,14, 0,18) si es D, y [0,18, 0,2) si se trata de E (ver Figura 2.4). Como cse encuentra en el intervalo [0, 0,04) el segundo smbolo sera una A, y as sucesivamente. uunionsq

    Aunque la codificacion Huffman tiende a ser mas rapida que la codificacion aritmetica, lacodificacion aritmetica alcanza una compresion mas proxima a la optima para una distribucionde probabilidades dada. El problema es que, debido a su naturaleza incremental, no se puederealizar la decodificacion de un trozo intermedio del texto comprimido. Para decodificar unsmbolo en el medio de un fichero comprimido con codificacion aritmetica es necesario decodificarel texto completo desde el principio hasta la palabra deseada. Esta caracterstica hace que lacodificacion aritmetica resulte inadecuada en el ambito de la Recuperacion de Textos.

    2.4. Metodos de diccionario

    Los metodos que hemos presentado hasta el momento se caracterizan por utilizar un modeloestadstico que asigna probabilidades a los smbolos que forman la cadena de entrada, y unesquema de codificacion que genera un codigo de salida (de longitud variable) para cada smbolode entrada en funcion de estas probabilidades.

    Los metodos de diccionario no utilizan un modelo estadstico ni codigos de longitud variable.En su lugar sustituyen subcadenas del texto original por codigos que identifican dicha subcadenaen un diccionario. Un ejemplo muy simple podra ser un metodo que realizase la compresionde textos en castellano utilizando directamente un diccionario en esta lengua. Para realizar lacodificacion se extraen secuencialmente las palabras del texto a comprimir y se buscan en eldiccionario. Cada vez que se localiza una palabra en el diccionario se escribe en la cadena desalida un ndice a la entrada correspondiente en el diccionario.

    Los diccionarios pueden ser estaticos o dinamicos(adaptativos). Un diccionario estaticoesta formado por un conjunto fijo y prestablecido de entradas (aunque en ocasiones permiteanadir nuevas). Un ejemplo de diccionario estatico es el empleado en la codificacion ASCII ocuando, por ejemplo, sustituimos Diciembre por 12 o TR para referirnos a Text Retrieval.

    El problema de los diccionarios estaticos es que no suelen adaptarse bien a cualquier texto.Por ello los compresores de texto comerciales optan por una solucion mas elegante y efectivaque es la utilizacion de diccionarios dinamicos. Estos diccionarios se crean para cada texto acodificar.

    Casi todas las tecnicas de diccionario adaptativas estan basadas en uno de los dos metodosZiv-Lempel que se detallan a continuacion.

    2.4.1. Codificacion Ziv-Lempel

    Dos investigadores israeles, Jacob Ziv y Abraham Lempel, desarrollaron en la decada delos 70 los primeros metodos de compresion basados en diccionarios adaptativos, LZ77 y LZ78[27, 28]. Sus ideas han sido basicas para el desarrollo de muchos metodos actuales para lacompresion sin perdida de textos (como gzip o compress), sonidos e imagenes.

    Ambos metodos (LZ77 y LZ78) se basan en el mismo principio: las subcadenas de textose sustituyen por punteros a ocurrencias previas de las mismas en el texto ya analizado. De

    32

  • 2.4. METODOS DE DICCIONARIO

    entrada subcadena de entrada Codif.Ziv-Lempel0 null1 A (0, A)2 B (0, B)3 AB (1, B)4 AA (1, A)5 ABA (3, A)

    Tabla 2.3: Ejemplo de codificacion LZ78

    este modo, el diccionario esta formado por el texto analizado, y los codigos se representan porpunteros. La utilizacion de un diccionario de este tipo suele resultar muy adecuado pues el textoanalizado generalmente esta formado por smbolos del mismo alfabeto (de la misma lenguasi hablamos de texto en lenguaje natural) que el texto que falta por codificar. Ademas, deeste modo el diccionario se transmite implcitamente en el texto codificado sin ningun coste dealmacenamiento extra. Las diferencias entre los metodos LZ77 y LZ78 vienen dadas basicamentepor la forma en que se representan los punteros y el tipo de subcadenas a las que pueden apuntar,por lo que a partir de aqu nos centraremos en LZ78.

    El metodo LZ78 utiliza un diccionario cuyas entradas son subcadenas. En cada paso dela codificacion se extrae una subcadena del texto no analizado, se anade al diccionario unaentrada formada por esta subcadena y el codigo asignado, y se escribe dicho codigo en el textocomprimido.

    El algoritmo de codificacion divide la cadena de entrada en un conjunto de subcadenas delongitud gradualmente incremental. En cada paso de la codificacion, a la subcadena mas largadel texto sin analizar que empareje con una entrada existente en el diccionario se le asignaun codigo (, c), siendo c el smbolo siguiente a dicha subcadena en el texto, y se anade aldiccionario.

    Ejemplo 2.4.1 Una cadena de entrada de la forma ABABAAABA da lugar a una codificacioncomo se muestra en la Tabla 2.3. Al principio el diccionario contiene una unica entrada con lasubcadena nula. El algoritmo comienza leyendo la subcadena A y buscando en el diccionarioalguna entrada que la contenga. Como no hay ninguna crea una nueva entrada en el diccionarioformada por esta subcadena y le asigna un codigo (0, A). Este codigo representa la cadena nullA (una concatenacion de la cadena nula correspondiente a la entrada 0 con la subcadena A).

    En el siguiente paso, el algoritmo lee la subcadena B y realiza la misma operacion.Posteriormente extrae la subcadena AB porque encuentra la subcadena A en el diccionario

    (entrada 1) pero no encuentra ninguna subcadena AB. Crea entonces la nueva entrada AB yle asigna un codigo (1, B) indicando que la subcadena actual es la concatenacion de la de laentrada 1 (A) y el smbolo B.

    Este proceso se realiza sucesivamente hasta finalizar el analisis del texto. uunionsq

    En cada paso de la codificacion, la subcadena anadida al diccionario esta formada por unasubcadena ya codificada y un nuevo smbolo; por lo tanto, cada nueva entrada sera de igual omayor longitud que las anteriores. El tamano maximo que puede alcanzar el diccionario puedeser prefijado de antemano o estar limitado a la cantidad de memoria disponible. Cuanto mayorsea este tamano se podran almacenar subcadenas mas largas permitiendo emparejamientos de

    33

  • 2.5. CONCLUSIONES DEL CAPITULO

    mayor longitud, pero tambien aumenta el numero de punteros lo que hace mas lenta la busquedasobre el diccionario.

    Los metodos Ziv-Lempel ofrecen en general una buena compresion, son rapidos y no requierenmucha memoria. Sin embargo, resultan ineficientes para documentos pequenos, pues comienzanasignando codigos mas largos que otros metodos vistos. Ademas, al tratarse de una codificacionde longitud fija, si el texto original no es lo suficientemente grande la eficiencia del metodo podrareducirse considerablemente.

    Se trata de una codificacion asintoticamente optima, lo que significa que la redundanciatiende a 0 cuando el tamano del vocabulario de entrada tiende a infinito.

    2.5. Conclusiones del captulo

    Este captulo se ha dedicado a realizar una revision de las principales tecnicas de compresionde datos. Entre ellas, caben destacar las diferentes codificaciones Huffman empleadas paracomprimir texto. Bajo codificacion Huffman, se asigna una secuencia de bits a cada smbolode la cadena original. Se asignan los codigos a los smbolos originales aplicando el algoritmo deHuffman, de modo que a los smbolos mas frecuentes les corresponden los codigos mas cortos.

    El metodo Huffman binario es uno de los metodos clasicos mas conocidos, y se ha aceptadocomo uno de los mejores de las ultimas decadas. A efectos de compararlo con los modelosvistos, comprime textos en ingles en 5 bits por caracter, frente a los metodos Ziv-Lempel que loreducen a unos 4 bits por caracter (es decir, aproximadamente a la mitad del tamano original) olos metodos basados en codificacion aritmetica que pueden alcanzar una compresion de unos 2bits por caracter. El problema de estos metodos alternativos es que consumen un mayor tiempode compresion y descompresion, y mas memoria para su procesamiento.

    34

  • Captulo 3

    Compresion de textos en lenguajenatural

    3.1. Introduccion

    Los metodos clasicos presentados en el captulo anterior no son adecuados para bases dedatos textuales. La codificacion Huffman binaria es poco utilizada por su escaso ratio decompresion. Por otro lado, el metodo Ziv-Lempel obtiene una buena compresion (entre un 30%y un 40% en la practica) pero la busqueda de una palabra sobre el texto comprimido es muyineficiente. As, los estudios empricos realizados [2, 3, 18] demuestran que la busqueda sobretextos comprimidos bajo codificacion Ziv-Lempel se puede llevar a cabo en la mitad de tiempoque realizar la descompresion del texto y busqueda posterior, pero es el doble de lenta que labusqueda directamente sobre el texto sin comprimir. Dado que uno de los retos principales delos sistemas de Recuperacion de Textos es proporcionar un acceso rapido a los datos, se necesitamejorar el rendimiento que ofrecen las tecnicas mencionadas.

    En 1989, Moffat propuso la idea de utilizar las palabras como los smbolos a comprimiren lugar de los caracteres [17, 24]. El motivo principal del planteamiento es que un texto esmucho mas facil de comprimir cuando se considera como una secuencia de palabras y no comoun conjunto de caracteres. Ademas, dado que las palabras son consideradas atomos por losmetodos de Recuperacion de Textos, una estrategia de compresion basada en palabras resultaparticularmente adecuada en este entorno.

    Actualmente se han desarrollado nuevas tecnicas de compresion basadas en palabras comolas presentadas por Manber [16], Turpin [23], Moura et al. [22, 29] y Brisaboa et al. [7]. Sobrelos textos comprimidos con estas tecnicas es posible realizar busquedas directas, evitando as lanecesidad de descomprimir antes de buscar.

    A continuacion, se presentan con detalle los dos ultimos metodos citados: el metodode compresion Huffman orientada a byte basada en palabras de Moura et al., y laCodificacion Densa con Post-Etiquetado, por ser los metodos mas eficientes de los citados.

    3.2. Compresion Huffman orientada a byte basada en palabras

    En [22, 29], Moura et al. presentan una tecnica de compresion basada en palabras que utilizacodificacion Huffman. Resultados empricos han demostrado que, desde el punto de vista dela compresion, las tecnicas que emplean codificacion Huffman basada en caracteres reducen

    Teora de la Informacion: Modelado y Representacion 35

  • 3.2. COMPRESION HUFFMAN ORIENTADA A BYTE BASADA EN PALABRAS

    el tamano de textos en ingles a aproximadamente un 60% de su tamano original, mientrasque los metodos que emplean codificacion Huffman basada en palabras pueden alcanzar unporcentaje de compresion proximo al 30%. Esto es debido a que la distribucion de palabras esconsiderablemente mas sesgada que la de caracteres pues, en la mayora de los textos en lenguajenatural, existe un conjunto de palabras que se repiten mucho mientras que las restantes tienenuna probabilidad de aparicion mucho menor.

    Otra de las ventajas de la utilizacion de compresion basada en palabras es que esta tecnicapermite la busqueda eficiente de palabras y frases sobre el texto comprimido, sin necesidadde descomprimirlo. En [22] se demuestra que las busquedas sobre textos comprimidos conestas tecnicas pueden llegar a ser 8 veces mas rapidas (para ciertas consultas) que utilizandoherramientas de busqueda (como Agrep[25]) sobre el texto sin comprimir.

    La tecnica de Moura et al. utiliza un modelo semiadaptativo, como sucede con la tecnicade compresion Huffman clasica. Es decir, el codificador hace una primera pasada sobre el textopara obtener la frecuencia de todas las palabras y, en una segunda pasada, realiza la codificacion.Durante esta ultima fase, se sustituyen los smbolos de entrada (palabras en este caso) por suscodigos. Para cada palabra en el texto habra un unico codigo cuya longitud vara dependiendode la frecuencia de aparicion de la palabra en el texto. Utilizando el algoritmo de compresionde Huffman, se asignan los codigos mas cortos a las palabras mas frecuentes y los codigos maslargos a las menos frecuentes.

    Otra diferencia con el metodo clasico de Huffman esta en los smbolos utilizados para lacodificacion. Ahora el codigo Huffman asignado a cada palabra tiene uno o mas bytes en lugarde un numero variable de bits. Las pruebas experimentales realizadas (ver [22, 29]) demuestranque no existe una degradacion significativa en el porcentaje de compresion utilizando bytes enlugar de bits, mientras que la busqueda y descompresion son mas rapidas ya que se evita lamanipulacion de bits.

    Moura et al. proponen dos tipos de codificacion. La primera de ellas, denominada PlainHuffman, consiste en la aplicacion del algoritmo Huffman utilizando como smbolos de salida losd = 28 =