一个语言模型通常构建为字符串s的概率分布p(s),这里p(s)试图反映的是字符串s作为一个句子出现的频率。例如,在一个人所说的话中每100个句子里面大约有一句是Okay,则可以认为p(Okay)约等于0.01。而对于句子“An apple ate the chicken”我们可以认为其概率是0,因为几乎没有人会说这样的句子。需要注意的是,与语言学中不同,语言模型与句子是否合乎语法是没有关系的,即使一个句子完全合乎语法逻辑,我们仍然可以认为它出现的概率接近为0。
对于一个由i个基元(“基元”可以为字,词或短语等,为了表述方便,用“词”来通指)构成的句子, 其概率计算公式如下
p(s) = p(w1) p(w2|w1) P(w3|w2w1)...p(wi|w1..wi-1)
一般地,我们把钱i-1个词w1w2..wi-1称作第i个词的“历史”。在这种计算方法中,随着历史长度的增加,不同的历史数目按指数级增长。如果历史的长度为i-1,那么就有L^(i-1)种不同的历史(假设L为词汇集的大小),而我们必须考虑在所有的L^(i-1)种不同的历史情况下,产生第i个词的概率。这样的话,模型中就有L^i个自由参数,使得我们几乎不可能从训练数据中正确的估计出这些参数,实际上,绝大多数历史根本就不可能在训练数据中出现。因此,为了解决这个问题,需要把上面的公式进行一定的简化,或者说近似。可以奖励是w1w2...wi-1按照某个法则映射到等价类E(w1w2...wi-1),而这些等价类的数目远远小于不同历史的数目。
假定p(s)=p(wi|E(w1,w2,...,wi-1)),那么自由参数的数目就会大大减少,有很多方法可以将历史划分成等
对于一个由i个基元(“基元”可以为字,词或短语等,为了表述方便,用“词”来通指)构成的句子, 其概率计算公式如下
p(s) = p(w1) p(w2|w1) P(w3|w2w1)...p(wi|w1..wi-1)
一般地,我们把钱i-1个词w1w2..wi-1称作第i个词的“历史”。在这种计算方法中,随着历史长度的增加,不同的历史数目按指数级增长。如果历史的长度为i-1,那么就有L^(i-1)种不同的历史(假设L为词汇集的大小),而我们必须考虑在所有的L^(i-1)种不同的历史情况下,产生第i个词的概率。这样的话,模型中就有L^i个自由参数,使得我们几乎不可能从训练数据中正确的估计出这些参数,实际上,绝大多数历史根本就不可能在训练数据中出现。因此,为了解决这个问题,需要把上面的公式进行一定的简化,或者说近似。可以奖励是w1w2...wi-1按照某个法则映射到等价类E(w1w2...wi-1),而这些等价类的数目远远小于不同历史的数目。
假定p(s)=p(wi|E(w1,w2,...,wi-1)),那么自由参数的数目就会大大减少,有很多方法可以将历史划分成等