数字 [0-9] 的迷你语言的困惑是什么,其中 0 的概率是其他数字的 10 倍?

机器算法验证 自然语言
2022-04-16 07:00:17

我正在阅读语音和语言处理,Jurafsky 和 ​​Martin,特别是第 4 章,他们介绍了困惑,请参阅https://web.stanford.edu/~jurafsky/slp3/4.pdf(第 8-9 页)

这里有一个简短的摘录:

还有另一种思考困惑的方法:作为一种语言的加权平均分支因子。语言的分支因子是可以跟随任何单词的可能下一个单词的数量。考虑识别英文数字(零、一、二、...、九)的任务,假设这 10 个数字中的每一个都以相等的概率出现P=1/10. 这种迷你语言的困惑度实际上是 10。为了看到这一点,想象一串长度为 N 的数字。根据公式(4.17),困惑度将是:

PP(W)=(110N)1N=(110)1=10

但是现在假设数字 0 非常频繁,并且出现的频率是其他数字的 10 倍。现在我们应该期望困惑度会更低,因为大多数时候下一个数字将为零。因此,尽管分支因子仍为 10,但困惑度或加权分支因子更小。我们把这个计算留给读者作为练习。

现在这应该相当简单,我进行了计算,但我得到的不是更低的困惑,而是更高的困惑。

我的计算是:

数字零的概率是其他概率的 10 倍。

P(0)=10P(n={1,2,..,9})

所有数字的概率之和必须加起来为 1

10P(n={1,2,..,9})+9P(n={1,2,..,9})=1

这意味着:

P(n={1,2,..,9})=119

P(0)=1019

所以把它代入困惑公式 PP(W)=P(w1,w2,..,wN)1N 我得到的数字:

PP(0,1,..,9)=(10191199)110=15.09224

这比之前计算的所有数字都相等的困惑更多110可能性。

这本书预计会降低困惑度,我做错了什么?

1个回答

你得到错误答案的原因是因为书中描述的计算方式有点混乱。这本书说“想象一串长度为N"。这意味着一长串数字,而不仅仅是一串10位数。

想象一下来自新语言的一长串数字。平均而言,在19这个序列中的数字,你有10零和1其他每个数字,因为0出现的频率是其他每个数字的十倍。想象一下将你的长序列分成长度块19. 说有M这些块。那么困惑是

((1019)10M(119)9M)1/19M

就像书中的例子一样,M的取消,所以困惑是:

((1019)10(119)9)1/19