If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

文本压缩

计算机如何压缩文本? 这里有一个提示:当人们发短信又不想打很多字的时候,很多人每天都在压缩文本。
比方说: 如果我想要说 "Great, see you later!", 我可以写 "Gr8, see u l8r!"
我通过寻找重复序列缩短了文本,并以较短序列("8"和"u") 取代这些序列。

压缩算法

计算机可以通过找到重复序列,并以较短的代表取代它们,从而以相似的方法压缩文本。它们不必和人一样纠结最终发音相同的结果,所以它们甚至可以进一步压缩。
让我们用这句莎士比亚的台词来作为练习:
to be or not to be, that is the question
最明显的重复序列是“to”和“be”,因此,计算机可以用别的符号代表原文,例如:
⊜ ⬗ or not ⊜ ⬗, that is the question
任何重复序列都可以被取代,即使它不是一个完整的单词,因此计算机还能替换“th”:
⊜ ⬗ or not ⊜ ⬗, ⟡at is ⟡e question
计算机也需要储存它所制作的符号替换表,以便能够重建原件。
替换版原版
to
be
th
测验你的理解
看看你是否可以找到方法压缩山博士说的这些话:
I am Sam, 
Sam I am.
That Sam-I-am! That Sam-I-am!
I do not like that Sam-I-am! 
Do you like green eggs and ham?
I do not like them, Sam-I-am.
I do not like green eggs and ham.
可以通过替换哪些序列来压缩文本?
选择所有正确的答案:

压缩量

如你所见,一些文本可以被压缩得很厉害——更多重复意味着更多的压缩。
一些文本根本不能压缩,如字母:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
事实上,字母的“压缩”版本可能需要比原版本多字节,视算法在文件中提供额外元数据而定。
🤔 你能想到其他不会因压缩而变小的文本的例子吗?会被压缩的 非常 好的例子呢?
我们对于压缩不能完全确保得到更小的文件这件事是可以接受的,因为总的来说,大多数文件的确包含重复的序列而且的确从压缩中受益。
\128269; 如果您想了解更多关于这种压缩类型, 您可以研究 Lempel-Ziv-Welch Best

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.