我知道英文的香农熵是每个字母1.0到1.5比特,有些人说低至每个字母0.6到1.3比特,但我想知道是否有一种算法可以分析大量文本并确定集体文本的期望值是每个字母0.08比特?
我知道英文的香农熵是每个字母1.0到1.5比特,有些人说低至每个字母0.6到1.3比特,但我想知道是否有一种算法可以分析大量文本并确定集体文本的期望值是每个字母0.08比特?
对于文本的香农熵值是估计出来的,准确求得超出人类能力范围。你可以通过运行高效的压缩算法(PAQ)或使用人类来预测给定字符串的下一个字母来估计它。人类会做得很好,因为他们应用语义知识,不仅仅是统计知识或句法知识。
简短回答:尽可能地压缩您拥有的数据/文本,并计算您实际需要的位数。
具体算法取决于您可以将数字降低到多少。这将始终只是香农熵的上限(请记住,永远无法知道确切的价值)。
Oli Charlesworth 是正确的,熵是定义在概率上的,而不是文本。
唯一真正能够生成数据无序度量的方法是使用 Kolmogorov 复杂性。尽管这也存在问题,特别是它是不可计算的,而且还没有严格地定义,因为人们必须任意选择一个基础语言—就像 Oli 所说的“上下文”。如果被测量的混乱与要处理的数据相关,则可以解决这种定义问题。因此,在考虑对特定计算机进行压缩时,基础语言将是该计算机的汇编语言。
因此,可以如下定义文本的无序度:
用汇编语言编写的最短程序的长度,该程序输出该文本。