Contenido principal
Principios de ciencias de la computación avanzados (AP Computer Science Principles)
Curso: Principios de ciencias de la computación avanzados (AP Computer Science Principles) > Unidad 1
Lección 6: Compresión de datos sin pérdidaCompresión de texto sin pérdida
¿Cómo puede una computadora comprimir un texto? Aquí hay una pista: muchas personas comprimen texto diariamente, cuando envían mensajes de texto y no quieren escribir mucho.
Por ejemplo: si quiero decir "Gracias, en camino a casa, te veo más tarde", podría escribir "Grs en Kmino a Ksa t veo + tarde!"
Se acortó el texto con secuencias repetidas reemplazadas con secuencias más cortas ("K" y "+").
Algoritmo de compresión
Las computadoras pueden comprimir texto de manera similar, al encontrar secuencias repetidas y reemplazarlas con representaciones más cortas. No necesitan preocuparse que el resultado final suene igual, como la gente lo hace, para poder comprimir aún más.
Intentemos con esta cita de William Shakespeare:
to be or not to be, that is the question
Las secuencias repetidas más obvias son "to" y "be", que la computadora podría representar con un carácter que no esté en el texto original, así:
⊜ ⬗ or not ⊜ ⬗, that is the question
Cualquier secuencia repetida puede reemplazarse, incluso si no es una palabra completa, así que la computadora también puede reemplazar "th":
⊜ ⬗ or not ⊜ ⬗, ⟡at is ⟡e question
La computadora también necesita almacenar la tabla de los reemplazos que hizo, para poder reconstruir el original.
reemplazo | original |
---|---|
⊜ | to |
⬗ | be |
⟡ | th |
Cantidad de compresión
Como puedes ver, algunos textos pueden comprimirse bastante; mientras más repetición, se logra más compresión.
Algunos textos no pueden comprimirse en absoluto, como el alfabeto:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
De hecho, una versión "comprimida" del alfabeto puede requerir más bytes para representarlo que el original, si el algoritmo coloca metadatos adicionales en el archivo.
🤔 ¿Puedes pensar en otros ejemplos de texto que no se reduciría con compresión? ¿Y ejemplos que sí se comprimirían realmente bien?
No tenemos problema con el hecho que la compresión no garantiza un archivo más pequeño, pues en general la mayoría de los archivos contienen secuencias repetidas y sí aprovechan la compresión.
🔍 Si quieres aprender más sobre este tipo de compresión, puedes investigar el algoritmo Lempel-Ziv-Welch (LZW).
🙋🏽🙋🏻♀️🙋🏿♂️¿Tienes alguna pregunta sobre este tópico? Nos encantaría contestarte; ¡simplemente pregunta en el area de preguntas abajo!
¿Quieres unirte a la conversación?
- Nota: la compresión de texto sin perdida es buscando una secuencia de palabras repetidas para cambiarlo por un carácter, así será mas pequeño.(1 voto)