Você está na página 1de 10

Codicaci on (s,c)-Densa: optimizando la compresi on de texto en lenguaje natural

Nieves R. Brisaboa1 ,Antonio Fari na1 , Gonzalo Navarro3, Eva L. Iglesias2, Jos e R. Param a1 y Mar a F. Esteller1
1

Database Lab., Univ. da Coru na, Facultade de Inform atica, Campus de Elvi na s/n, 15071 A Coru na. {brisaboa,fari,parama}@udc.es, mfesteller@yahoo.es Dept. de Inform atica, Univ. de Vigo , Esc. Sup. de Enxe ner a Inform atica, Campus As Lagoas s/n, 32001, Ourense. eva@uvigo.es Dept. of Computer Science, Univ. de Chile, Blanco Encalada 2120, Santiago, Chile. gnavarro@dcc.uchile.cl

Resumen Este trabajo presenta un nuevo m etodo para la compresi on de textos, que permite la b usqueda directa de palabras y frases dentro del texto sin necesidad de descomprimirlo. Este m etodo es directamente comparable, en tasa de compresi on, con las t ecnicas basadas en Human orientadas a palabras y proporciona una compresi on m as simple y r apida, manteniendo sus caracter sticas m as destacables de cara a la realizaci on de b usquedas directas de palabras sobre el texto comprimido, al generar c odigos con marca y de prejo libre. De este modo esta t ecnica es extremadamente adecuada para la compresi on de textos sobre los que haya que realizar operaciones de Text Retrieval, pues facilita la indexaci on y preprocesado sin necesidad de descomprimirlos. En el presente art culo se describe la Codicaci on (s,c)-Densa y se muestra el proceso de obtenci on de los par ametros s y c que maximizan la compresi on de un corpus determinado. Este proceso se basa en analizar la distribuci on de frecuencias de las palabras para, de este modo, generar c odigos que minimicen la redundancia del c odigo generado. Adem as se muestran resultados emp ricos que demuestran la efectividad de esta nueva t ecnica de compresi on.

1.

Introducci on

En los u ltimos a nos las colecciones de textos han crecido de forma sustancial debido principalmente a la generalizaci on del uso de las bibliotecas digitales, bases de datos documentales, sistemas de om atica y la Web. Aunque la capacidad de los dispositivos actuales para almacenar informaci on crece r apidamente mientras que los costes asociados decrecen, el tama no de las colecciones de texto crece m as r apidamente. Adem as, la velocidad de la cpu crece mucho m as r apidamente que las velocidades de los dispositivos de almacenamiento y de las redes, por lo tanto, almacenar la informaci on comprimida reduce el tiempo de entrada/salida, lo cual es cada vez m as

interesante a pesar del tiempo extra de cpu necesario. Sin embargo, si el esquema de compresi on no permite buscar palabras directamente sobre el texto comprimido, la recuperaci on de documentos ser a menos eciente debido a la necesidad de descomprimir antes de la b usqueda. Las t ecnicas de compresi on cl asicas, como los conocidos algoritmos de Ziv y Lempel [10,11] o la codicaci on de Human [3], no son adecuadas para las grandes colecciones de textos. Los esquemas de compresi on basados en la t ecnica de Human no se utilizan com unmente en lenguaje natural debido a sus pobres ratios de compresi on. Por otro lado, los algoritmos de Ziv y Lempel obtienen mejores ratios de compresi on, pero la b usqueda de una palabra sobre el texto comprimido es ineciente [5]. En [8] se presentan dos t ecnicas de compresi on, denominadas Plain Human y Tagged Human, que permiten la b usqueda de una palabra en el texto comprimido (sin necesidad de descomprimirlo) de modo que la b usqueda puede ser hasta ocho veces m as r apida para ciertas consultas, al mismo tiempo que obtienen buenos ratios de compresi on. En [2] se presenta un c odigo denominado C odigo Denso con Post-etiquetado, que mantiene las propiedades del Tagged Human mejor andolo en algunos aspectos: (i) mejores ratios de compresi on, (ii) mismas posibilidades de b usqueda, (iii) codicaci on m as simple y r apida y (iv ) una representaci on m as simple y peque na del vocabulario. En este art culo presentamos el C odigo (s, c)-Denso, una generalizaci on del C odigo Denso con Post-etiquetado que mejora el ratio de compresi on. El C odigo (s, c)-Denso comprime siempre mejor que el C odigo Denso con Post-Etiquetado y el Tagged Human y, s olo un 0,5 % menos que el Plain Human. Al mismo tiempo el C odigo (s, c)-Denso mantiene todas las ventajas del C odigo Denso con Post-Etiquetado y del C odigo Tagged Human.

2.

Trabajo relacionado

Human es un m etodo de codicaci on ampliamente conocido [3]. La idea de la codicaci on Human es comprimir el texto al asignar c odigos m as cortos a los s mbolos m as frecuentes. Se ha probado que el algoritmo de Human obtiene, para un texto dado, una codicaci on optima (esto es, la compresi on m axima) de prejo libre. Una codicaci on se denomina de prejo libre (o c odigo instant aneo) si no produce ning un c odigo que sea prejo de otro c odigo. Un c odigo de prejo libre puede ser decodicado sin necesidad de comprobar c odigos futuros, dado que el nal de un c odigo es inmediatamente reconocible. 2.1. Compresi on Human basada en palabras

Las implementaciones tradicionales del c odigo Human son basadas en caracteres, esto es, utilizan los caracteres como los s mbolos a comprimir. Esta estrategia cambi o cuando en [4] se propuso usar palabras en lugar de caracteres. En [8,12], se presenta un esquema de compresi on que usa esta estrategia

combinada con un c odigo Human. Estos modelos usan un modelo semiest atico, esto es, el codicador realiza una primera pasada sobre el texto para obtener la frecuencia de todas las palabras en el texto y posteriormente, en una segunda pasada, se codica el texto. Durante la segunda fase, los s mbolos originales (palabras) son reemplazados por c odigos. Para cada palabra en el texto s olo existe un c odigo, cuya longitud var a dependiendo de la frecuencia de la palabra en el texto. El m etodo b asico propuesto por Human es mayormente usado como un c odigo binario, esto es, cada palabra del texto original es codicada como una secuencia de bits. En [8] se modica la asignaci on de c odigos de modo que a cada palabra del texto original se le asigna una secuencia de bytes en lugar de una secuencia de bits. Estudios experimentales han mostrado que no existe una degradaci on signicativa en el ratio de compresi on de textos en lenguaje natural al utilizar bytes en lugar de bits. Sin embargo, la descompresi on y la b usqueda sobre textos comprimidos usando bytes en lugar de bits son m as ecientes debido a que no es necesaria la manipulaci on de bits. 2.2. C odigos Tagged Human

En [8] se presentan dos c odigos que siguen esta aproximaci on. En dicho trabajo, se denomina C odigo Plain Human al c odigo que ya hemos descrito, esto es, un c odigo Human basado en palabras y orientado a bytes. El segundo c odigo propuesto se denomina C odigo Tagged Human. Este c odigo es como el anterior pero con la diferencia de que se reserva un bit de cada byte para indicar si dicho byte es el primer byte de un c odigo o no. Por lo tanto, s olo 7 bits de cada byte son usados para el c odigo Human. Obs ervese que el uso del c odigo Human sobre los 7 restantes bits de cada byte es obligatorio, dado que el bit de marca no es suciente para garantizar un c odigo de prejo libre. El c odigo Tagged Human tiene un precio en t erminos de compresi on: se almacena bytes completos pero s olo se usan 7 bits de cada byte para codicar informaci on. Por lo tanto, el chero comprimido crece aproximadamente un 11 % con respecto a la codicaci on Plain Human. La adici on del bit de marca en el c odigo Tagged Human permite realizar b usquedas directamente sobre el texto comprimido. Para ello simplemente se comprime el patr on y, posteriormente, se utiliza cualquier algoritmo cl asico de emparejamiento de patrones. Si se utiliza Plain Human esto no funciona correctamente debido a que la versi on codicada del patr on puede aparecer en el texto comprimido a pesar de no aparecer en el texto real. Este problema se debe a que la concatenaci on de partes de dos c odigos puede formar el c odigo correspondiente a otra palabra del vocabulario. Esto no puede ocurrir con el c odigo Tagged Human gracias al uso del bit de marca que en cada c odigo determina para cada byte si dicho byte es el primer byte del c odigo o no. Por esta raz on, la b usqueda sobre textos comprimidos con Plain Human debe comenzar desde el principio del chero, mientras que con Tagged Human no es necesario.

2.3.

C odigos densos con Post-Etiquetado

El C odigo Denso con Post-Etiquetado [2] comienza con un, aparentemente, simple cambio sobre el C odigo Tagged Human. En lugar de utilizar el bit de marca para indicar cu al es el primer byte de un c odigo, dicho bit indica cu al es el u ltimo byte de cada c odigo. Esto es, el bit de marca es 0 en todos los bytes de un c odigo excepto el u ltimo, que tiene el bit de marca a 1. Este cambio tiene consecuencias sorprendentes. Ahora el bit de marca es suciente para asegurar que el c odigo es de prejo libre independientemente del contenido de los otros 7 bits. Gracias a esto, no hay necesidad de usar la codicaci on Human sobre los restantes 7 bits. Es posible usar todas las posibles combinaciones sobre los 7 bits de todos los bytes Por otro lado, no estamos restringidos a usar s mbolos de 8 bits para formar c odigos. Es posible usar s mbolos de b bits. Teniendo en cuesta esto, el C odigo Denso con Post-etiquetado se dene como sigue: Denici on 1 Dado un conjunto de s mbolos fuente con probabilidades decrecientes {pi }0i<n , el c odigo correspondiente a cada s mbolo fuente est a formado por una secuencia de s mbolos de b bits, todos ellos representados en base (2b1 ) (esto es, desde 0 hasta 2b1 1), excepto el u ltimo s mbolo, que tiene un valor entre 2b1 y 2b 1, y donde la asignaci on se de estos c odigos a los s mbolos fuente se realiza de un modo completamente secuencial. El c alculo de los c odigos es extremadamente simple; s olo es necesario ordenar el vocabulario por frecuencia y luego asignar secuencialmente los c odigos teniendo en cuenta el bit de marca. Por lo tanto, la fase de codicaci on ser a m as r apida que usando Human.

3.

C odigos (s,c)-Densos

Como ya se ha visto, los C odigos Densos con Post-etiquetado usan 2b1 valores, desde el 0 hasta el 2b1 1, para los bytes al comienzo de un c odigo (valores no terminales), y utiliza otros 2b1 valores, del 2b1 al 2b 1, para el u ltimo byte de un c odigo (valores terminales). Pero la pregunta que se plantea ahora es cu al es la distribuci on optima de valores terminales y no terminales, esto es, para un corpus determinado con una distribuci on de frecuencias de palabras determinada, puede ocurrir que un n umero diferente de valores no terminales (continuadores) y valores terminales (stoppers) comprima mejor que la alternativa de utilizar 2b1 valores para cada conjunto. Esta idea ya fue apuntada en [6]. Nosotros denimos los C odigos (s, c)-stop-cont como sigue. Denici on 2 Dado un conjunto de s mbolos fuente con probabilidades {pi }0i<n , una codicaci on (s, c)-stop-cont (en la cual c y s son enteros mayores que cero) asigna a cada s mbolo fuente i un c odigo u nico formado por una secuencia de s mbolos de salida en base c y un s mbolo nal que estar a entre c y c + s 1.

Hemos llamado a los s mbolos que est an entre 0 y c 1 continuadores y a aquellos entre c y c + s 1 stoppers. Por lo tanto, cualquier c odigo (s, c) stop-cont es de prejo libre. Entre todas las posibles codicaciones (s, c) stop-cont para una distribuci on de probabilidades dada, el c odigo denso es la que minimiza la longitud media de los s mbolos. Denici on 3 Dado un conjunto de s mbolos fuente con probabilidades decrecientes {pi }0i<n , los c odigos correspondientes a su codicaci on (s, c)Denso ((s, c)-DC) se asignan de la siguiente manera: sea k 1 el n umero de bytes del c odigo correspondiente a un s mbolo fuente i, entonces k ser a tal que: k k 1 1 1 i < s cc s c c 1 1 As , el c odigo correspondiente al s mbolo fuente i estar a formado por k 1 s mbolos (de salida) en base-c y un s mbolo nal. Si k = 1 entonces el c odigo es simplemente el stopper c + i. De otro modo el c odigo estar a formado por el valor k 1 x/s escrito en base c, seguido por c + (x mod s), en el cual x = i sc c1s . Ejemplo 1 Los c odigos asignados a los s mbolos i 0 . . . 15 por un (2,3)-DC ser an: 3 , 4 , 0,3 , 0,4 , 1,3 , 1,4 , 2,3 , 2,4 , 0,0,3 , 0,0,4 , 0,1,3 , 0,1,4 , 0,2,3 , 0,2,4 , 1,0,3 y 1,0,4 . Observe que los c odigos no dependen en las probabilidades exactas de cada s mbolo sino es su ordenaci on por frecuencia. Dado que con k d gitos obtenemos sck1 c odigos diferentes, denominamos k k 1 s s , (donde W = 0) al n umero de s mbolos fuentes que Wk = j =1 scj 1 = s cc 0 1
s k pueden ser codicados con hasta k d gitos. Denominamos fk = j= s Wk +1 pj a 1 la suma de probabilidades de los s mbolos fuente codicadas con k d gitos por un (s, c)-DC. Entonces, la longitud media de los c odigos para tal (s, c)-DC, LD(s,c) , es
Ks Ks s kfk k=1
s Wk

Ws

K s 1

s Wk +1

K s 1

s Wk

LD(s,c) =

=
k=1

k
j =W s
k 1

pj = 1 +
+1 k=1

k
j =W s +1
k

pj = 1 +
k=1 j =W s +1
k

pj

K x = log(2b x) 1 +

n(2b x1) x

y n es el n umero de s mbolos en el vocabulario.

Por la Denici on 3 el c odigo denso con PostEtiquetado [2] es un (2b1 ,2b1 )DC y por ello (s,c) -DC puede ser visto como una generalizaci on del c odigo denso con PostEtiquetado en el que s y c han sido ajustados para optimizar la compresi on seg un la distribuci on de frecuencias del vocabulario. En [2] est a probado que (2b1 ,2b1 )-DC es de mayor eciencia que el Tagged Human. Esto es debido a que el Tagged Human es un c odigo (2b1 ,2b1 ) (non dense) stop-cont, mientra que el m etodo denso con PostEtiquetado s es un c odigo (2b1 ,2b1 )-Denso.

Ejemplo 2 El Cuadro 1 muestra los c odigos asignados a un peque no conjunto de palabras ordenadas por frecuencia usando el Plain Human (P.H.), (6,2) DC, m etodo denso con PostEtiquetado (ETDC) que es un (4,4) -DC, y Tagged Human (TH). Por simplicidad se han utilizado s mbolos de tres bits (b=3 ). Las u ltimas cuatro columnas muestran el producto del numero de bytes por las frecuencia de cada palabra y su suma (la longitud media de los c odigos), se muestra en la u ltima la. Los valores (6,2) para s y c no son los optimos sino que una codicaci on (7,1)Densa obtendr a el texto comprimido optimo, siendo en este ejemplo el mismo resultado que en el Plain Human. El problema ahora consiste en encontrar los valores s y c (asumiendo un b jo donde 2b = s + c) que minimice el tama no del texto comprimido.
Palabra A B C D E F G H I J Frec 0.2 0.2 0.15 0.15 0.14 0.09 0.04 0.02 0.005 0.005 P.H. [000] [001] [010] [011] [100] [101] [110] [111][000] [111][001] [111][010] (6,2)-DC ETDC T.H. [010] [100] [100] [011] [101] [101] [100] [110] [110] [101] [111] [111][000] [110] [000][100] [111][001] [111] [000][101] [111][010] [000][010] [000][110] [111][011][000] [000][011] [000][111] [111][011][001] [000][100] [001][100] [111][011][010] [000][101] [001][101] [111][011][011] Tama no total comprimido Frec bytes P.H. (6,2)-DC ETDC 0.2 0.2 0.2 0.2 0.2 0.2 0.15 0.15 0.15 0.15 0.15 0.15 0.14 0.14 0.28 0.09 0.09 0.18 0.04 0.08 0.08 0.04 0.04 0.04 0.01 0.01 0.01 0.01 0.01 0.01 1.03 1.07 1.30 T.H. 0.2 0.2 0.3 0.3 0.28 0.18 0.12 0.05 0.015 0.015 1.67

Cuadro1. Comparativa entre m etodos de compresi on

4.

Valores s y c optimos: Unicidad del m nimo

Antes de presentar el algoritmo que calcula los valores optimos para s y c, necesitamos probar que cuando tres valores consecutivos de s, digamos s 1, s, y s + 1, son usados para comprimir el mismo texto y obtenemos respectivamente Ts1 , Ts y Ts+1 tales que Ts1 Ts Ts+1 , entonces s es el valor optimo. Esto es, existe tan s olo un m nimo local del tama no del texto comprimido y est a en funci on de s y c, o hay un conjunto de valores consecutivos de s que obtienen la misma compresi on, y en ese caso puede ser elegido cualquiera de ellos. Comenzaremos probando la unicidad del m nimo usando algunos lemas y deniciones. Lema 1 Dados tres valores consecutivos de s, sean s 1, s y s + 1, existen dos n umeros Kz y Ky tales que:
s1 s (i) k Kz , Wk > Wk , s+1 s (ii) k Ky , Wk > Wk , (iii) Ky Kz s1 s k < Kz , W k Wk s+1 s k < Ky , W k Wk

s1 s Lema 2 Para cualquier k < Ky se cumple la siguiente desigualdad: Wk Wk s+1 s Wk Wk .

Sea z el primer s mbolo, en el ranking de s mbolos ordenados por frecuencia, que es codicado con un menor n umero de bytes por (s 1, c + 1)-DC que por (s, c)-DC. Sea tambi en y el primer s mbolo en el ranking que es codicado con menos bytes por (s, c)-DC que por (s + 1, c 1)-DC (estamos en todo momento s+1 s asumiendo que s + c = 2b ). Note que y = WK + 1 y z = WK + 1. Se puede ver z y como y estar a antes que z en el ranking de palabras, y por ello y tendr a siempre una frecuencia mayor que z . Sea A la secuencia de s mbolos que preceden al s mbolo z y B la secuencia de s mbolos desde z hasta el nal del vocabulario. Del mismo modo, C es la secuencia de s mbolos que preceden a y y D la secuencia de s mbolos desde y al nal del vocabulario. Esto est a representado en la Figura 1. Llamamos As al tama no del texto comprimido relacionado con las palabras en A cuando usamos un (s, c)-DC. Del mismo modo, Bs1 representa el tama no del texto comprimido teniendo en cuenta tan solo las palabras en B cuando se usa un (s 1, c + 1)-DC, y as sucesivamente. De la denici on de z y y tenemos: As As1 ; Bs Bs1 ; Cs Cs+1 ; Ds Ds+1 . Ahora llamemos: dA = As1 As ; dB = Bs Bs1 ; dC = Cs Cs+1 ; dD = Ds+1 Ds .
primera palabra

A y z
Wk
s
y

Wk Wk
y-1

S+1 y-1

Wk

S+1 y

Wk Wk
z-1

S-1

s
z-1

Wk Wk
z

S-1 z

ltima palabra del vocabulario

Figura1. Representaci on de las secuencias de s mbolos A, B , C , y D.

Lema 3 Dado un corpus, s, b dA dC Lema 4 Dado un corpus, s, b, dC dD = dA dB y dC > dD = dA > dB Usando los lemas anteriores podemos probar que hay a lo sumo un u nico m nimo local en cuanto al tama no del texto comprimido en funci on de s. Observe que una condici on necesaria y suciente para hacer imposible el m nimo local es que no pueda existir un valor s tal que Ts1 < Ts > Ts+1 . Teorema 1 Sea un corpus textual T codicado con un (s, c)-DC, no existe un valor s tal que Ts1 Ts > Ts+1 o Ts1 < Ts Ts+1 Demostraci on. Por el Lema 1, sabemos que Ts = As + Bs ; Ts = Cs + Ds ; Ts1 = As1 + Bs1 ; Ts+1 = Cs+1 + Ds+1 Dado que Ts > Ts1 deducimos que dB > dA . Del mismo modo, a partir de Ts > Ts+1 obtenemos que dC > dD . Por el Lema 4 tenemos que dC dD

= dA dB , por lo que obtenemos una contradicci on. Siguiendo el mismo razonamiento Ts1 Ts = dB dA y por Ts+1 < Ts obtenemos dC > dD , por lo que tenemos la misma contradicci on. Encontramos la misma contradicci on cuando consideramos que Ts1 < Ts Ts+1 .

5.

Algoritmo para obtener los valores optimos de s y c

En esta secci on se mostrar a un algoritmo para buscar el mejor s y, consecuentemente, c para un corpus y un b dado. El algoritmo b asico presentado es una b usqueda binaria que calcula inicialmente el tama no del texto para dos valores consecutivos de s: (2b1 1 y 2b1 ). Por el Teorema 1, sabemos que existe a lo sumo un m nimo local, por lo que el algoritmo guiar a la b usqueda hasta obtener el punto que proporcione el mejor ratio de compresi on. En cada iteraci on del algoritmo, el espacio de b usqueda se reduce a la mitad y se calcula la compresi on en dos puntos centrales del nuevo intervalo. El algoritmo ndBestS calcula el mejor valor para s y c para un b y una lista de frecuencias acumuladas dadas. El tama no del texto comprimido (en bytes) se calcula, para unos valores espec cos de s y c, llamando a la funci on ComputeSizeS (que no incluimos por falta de espacio).
ndBestS (b, f reqList) //Entrada : b valor (2b = c + s). //Entrada : A Lista de frecuencias acumuladas ordenadas por orden decreciente de frecuencia. //Salida : Los mejores valores para s y c begin Lp := 1; //Lp y Up puntos menor y mayor Up := 2b 1; // del intervalo que se comprueba while Lp + 1 < Up do Up M := Lp+ 2 sizeP p := computeSizeS (M 1, 2b (M 1), f reqList)// tama no con M-1 sizeM := computeSizeS (M, 2b M, f reqList)// tama no con M if sizeP p < sizeM then Up := M 1 else Lp := M end if end while if Lp < Up then //Lp = Up 1 y M = Lp sizeN p := computeSizeS (Up, 2b Up, f reqList); // tama no con M+1 if sizeM < sizeN p then bestS := M else bestS := Up end if else bestS := Lp //Lp = Up = M 1 end if bestC := 2b bestS return bestS , bestC end

Calcular el tama no del texto comprimido para un valor espec co de s tiene un coste de O(logc n), excepto para c = 1, en cuyo caso su coste es de O(n/s) = O(n/2b ). La secuencia m as cara de llamadas a computeSizeS en una b usqueda binaria es la de valores c = 2b1 , c = 2b2 , c = 2b3 , . . ., c = 1. El coste total de computeSizeS sobre esa secuencia de valores c es 1 b1 1 n n n + b i=1 log2bi n = 2b + log2 n i=1 bi = O 2b + log n log b . 2b

Las dem as operaciones de la b usqueda binaria son constantes, aunque tenemos un coste extra de O(n) para calcular las frecuencias acumuladas. Por tanto, el coste total de encontrar s y c es O(n + log(n) log(b)). Puesto que el b de m aximo inter es es aquel que b = log2 n (en este punto podemos codicar cada s mbolo usando un u nico stopper), el algoritmo de optimizaci on tiene un coste a lo sumo de O(n + log(n) log log log(n)) = O(n), suponiendo que el vocabulario estuviera ya ordenado.

6.

Resultados emp ricos

Hemos utilizado algunas colecciones grandes de textos del trec-2 (AP Newswire 1988 y Zi Data 1989-1990) y del trec-4 (Congressional Record 1993, Financial Times 1991, 1992, 1993 y 1994). Tambi en hemos usado corpus de literatura espa nola que creamos previamente. Se han comprimido todos ellos usando Plain Human, C odigo (s,c) -Denso, Denso con PostEtiquetado y Tagged Human. Para crear el vocabulario hemos utilizado el modelo spaceless [7] que consiste en que si una palabra va seguida de un espacio tan s olo se codica la palabra. Hemos excluido el tama no del vocabulario comprimido en los resultados (por ser despreciable y similar en todos los casos)

Corpus Tama no original Palabras del Voc P.H. (s,c)-DC ETDC T.H. AP Newswire 1988 250,994,525 241,315 1.852045 31.18 (189,67) 31.46 32.00 34.57 Zi Data 1989-1990 185,417,980 221,443 1.744346 31.71 (198,58) 31.90 32.60 35.13 Congress Record 51,085,545 114,174 1.634076 27.28 (195,61) 27.50 28.11 30.29 Financial Times 1991 14,749,355 75,597 1.449878 30.19 (193,63) 30.44 31.06 33.44 Financial Times 1992 175,449,248 284,904 1.630996 30.49 (193,63) 30.71 31.31 33.88 Financial Times 1993 197,586,334 291,322 1.647456 30.60 (195,61) 30.79 31.48 34.10 Financial Times 1994 203,783,923 295,023 1.649428 30.57 (195,61) 30.77 31.46 34.08 Spanish Text 105,125,124 313,977 1.480535 27.00 (182,74) 27.36 27.71 29.93

Cuadro2. Comparaci on de los ratios de compresi on. El Cuadro 2 muestra los ratios de compresi on obtenidos para los corpus mencionados. La segunda columna contiene el tama no original del corpus procesado y las siguientes columnas indican el n umero de palabras del vocabulario, el par ametro de la Ley de Zipf [9,1] y el ratio de compresi on para cada m etodo. La sexta columna, que se reere al m etodo (s, c)-DC, proporciona los valores optimos de (s, c) encontrados usando el algoritmo ndBestS. Como se puede observar, Plain Human obtiene el mejor ratio de compresi on (como cab a espera por ser la codicaci on optima de prejo libre) y el m etodo denso con PostEtiquetado siempre obtiene mejores resultados que el Tagged Human, con una mejora de hasta 2.5 puntos. Como esper abamos, (s, c)-DC mejora los resultados obtenidos por (128, 128)-DC (ETDC). De hecho, (s, c)-DC es mejor que (128, 128)-DC aunque peor que Plain Human en tan s olo menos de 0.5 puntos de media.

10

7.

Conclusiones

Hemos presentado el c odigo (s, c)-Denso, un m etodo nuevo para compresi on de textos en lenguaje natural. Este m etodo es una generalizaci on del Denso con PostEtiquetado y mejora su ratio de compresi on adaptando sus par ametros (s, c) al corpus que ser a comprimido. Se ha proporcionado un algoritmo que calcula los valores optimos de s, c para un corpus dado, esto es, el par que maximiza el ratio de compresi on. Hemos presentado algunos resultados emp ricos comparando nuestro m etodo con otros c odigos de similares caracter sticas, siendo nuestro c odigo siempre mejor que el m etodo denso con PostEtiquetado y el Tagged Human, obteniendo tan s olo un 0.5 % menos de ratio de compresi on sobre la codicaci on optima Human. Nuestro m etodo es m as veloz y simple de construir.

Referencias
1. R. Baeza-Yates and B. Ribeiro-Neto. Modern Information Retrieval. AddisonWesley Longman, May 1999. 2. N. Brisaboa, E. Iglesias, G.Navarro, and J. Param a. An ecient compression code for text databases. In 25th European Conference on IR Research, ECIR 2003, LNCS 2633, pages 468481, 2003. 3. D. A. Human. A method for the construction of minimum-redundancy codes. Proc. Inst. Radio Eng., 40(9):10981101, 1952. 4. A. Moat. Word-based text compression. Software - Practice and Experience, 19(2):185198, 1989. 5. G.Navarro and J. Tarhio. Boyer-Moore string matching over Ziv-Lempel compressed text. In Proc. 11th Annual Symposium on Combinatorial Pattern Matching (CPM 2000), LNCS 1848, pages 166180, 2000. 6. J. Rautio, J. Tanninen, and J. Tarhio. String matching with stopper encoding and code splitting. In Proc. 13th Annual Symposium on Combinatorial Pattern Matching (CPM 2002), LNCS 2373, pages 4252, 2002. 7. E. Silva de Moura, G.Navarro, N. Ziviani, and R. Baeza-Yates. Fast searching on compressed text allowing errors. In Proc. 21st Annual International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR-98), pages 298306, 1998. 8. E. Silva de Moura, G.Navarro, N. Ziviani, and R. Baeza-Yates. Fast and exible word searching on compressed text. ACM Transactions on Information Systems, 18(2):113139, 2000. 9. G.K. Zipf. Human Behavior and the Principle of Least Eort. Addison-Wesley, 1949. 10. J. Ziv and A. Lempel. A universal algorithm for sequential data compression. IEEE Transactions on Information Theory, 23(3):337343, 1977. 11. J. Ziv and A. Lempel. Compression of individual sequences via variable-rate coding. IEEE Transactions on Information Theory, 24(5):530536, 1978. 12. N. Ziviani, E. Silva de Moura, G.Navarro, and R. Baeza-Yates. Compression: A key for next-generation text retrieval systems. Computer, 33(11):3744, 2000.

Você também pode gostar