盘古网建站/网推接单平台
语言模型
语言模型(Language Model)通过对句子的上下文特征进行数学建模,来回答一个问题:出现的句子是否合理。
语言模型是自然语言的基础,广泛应用于机器翻译、语音识别、拼写纠错、输入法、手写体识别等。
对于一个由单词构成的句子s=w1w2...wns=w_1w_2...w_ns=w1w2...wn,其概率计算公式:
p(s)=p(w1)p(w2∣w1)p(w3∣w1w2)...p(wn∣w1...wn−1)=∏i=1np(wi∣w1...,wn−1)\begin{aligned}p(s) & =p(w_1)p(w_2 \mid w_1)p(w_3\mid w_1w_2)...p(w_n \mid w_1...w_{n-1}) \\ &= \prod_{i=1}^{n}p(w_i \mid w_1...,w_{n-1})\end{aligned}p(s)=p(w1)p(w2∣w1)p(w3∣w1w2)...p(wn∣w1...wn−1)=i=1∏np(wi∣w1...,wn−1)
在统计语言模型中,一般采用极大似然来计算每个词出现的条件概率:
p(wi∣w1...,wi−1)=Count(w1,w2,...,wi)∑wCount(w1,w2,...,wi,w)p(w_i \mid w_1...,w_{i-1}) = \frac{Count(w_1,w_2,...,w_i)}{\sum_{w}Count(w_1,w_2,...,w_i,w)}p(wi∣w1...,wi−1)=∑wCount(w1,w2,...,wi,w)Count(w1,w2,...,wi)
假设词汇集的大小为LLL,对于一个长度为nnn的句子进行建模,则需要计算LnL^nLn个参数。假设L=5000,n=3L=5000,n=3L=5000,n=3,则参数个数就是1250亿个。
为解决参数空间过大的问题,引入了马尔可夫假设,即第NNN个词出现的概率只与前面出现的N−1N-1N−1个词有关,称为n-gram。
n=1n=1n=1,一元模型(unigram),即每个词之间都是相互独立的:
p(s)=∏i=1np(wi)p(s)= \prod_{i=1}^{n}p(w_i) p(s)=i=1∏np(wi)
n=2n=2n=2,二元模型(bigram)
p(s)=∏i=1np(wi∣wi−1)p(s)= \prod_{i=1}^{n}p(w_i \mid w_{i-1}) p(s)=i=1∏np(wi∣wi−1)
n=3n=3n=3,三元模型(trigram)
p(s)=∏i=1np(wi∣wi−2,wi−1)p(s)= \prod_{i=1}^{n}p(w_i \mid w_{i-2},w_{i-1}) p(s)=i=1∏np(wi∣wi−2,wi−1)