ANlP基础知识

语言模型

一种对语言打分的方法。(tips:模型就是对一个东西打分的方法。)

概率/统计语言模型(PLM,SLM):

分数是通过概率体现的,就是一个序列能作为一句话的可能性。

​ $p\left ( W \right ) = p\left ( w1^{T} \right ) = p\left ( w1,w2,…, w_{T} \right )$

根据贝叶斯公式:

$p\left ( w1^{T} \right ) = p(w1)\cdot p\left ( w2|w1 \right )\cdot p\left ( w2|w1^{2} \right )\cdots p\left ( wT|w1 ^{T-1}\right )$

每个条件概率是模型的参数,参数已知的话,就可以得到一个序列的概率。

  • 贝叶斯定理是一种在已知其他概率(先验概率)的情况下求后验概率概率的方法:

    针对事件发生的概率以及事件可信度分析上具有良好的分类效果

N-gram语言模型:

马尔可夫(Markov)假设:未来的事情,只取决于有限的历史

所以基于Markov,N-gram语言模型认为一个词出现的概率只与它前面的(n-1)个词有关

$p\left ( w_{t}|w1,w2,\cdots w_{t-1} \right ) \approx p\left ( w_{t}|w_{t-n+1}\cdots w_{t-1} \right )$

根据条件概率和大数定律,当语料规模足够大的时候

$p\left ( w_{t}|w_{t-n+1}\cdots w_{t-1} \right ) =\frac{count( w_{t},w_{t-n+1})}{count( w_{t-n+1})}$

理论上 N越大,参数的数量越大 ,效果越好。但由于语料库大小的限制,随N的增大,性能不会显著变好。一般最大取4.

OOV(Out of Vocabulary)问题:

序列中有词表外词,或称为未登录词。换言之,测试或验证集中出现了训练集中没有出现过的词。

解决方法:

  • 用UNK替换未登录词
  • 设置一个词频阈值,高于阈值的词被加入词表,低于阈值的词替换为UNK

平滑处理 smoothing:

count(word)= 0:

Add-one smoothing

Add-k smoothing(k<1)

Back-off 回退

Interpolation 插值法

评价机制

困惑度(perplexity,ppx)

用于度量一个概率分布或概率模型预测样本的好坏程度。

语言模型中的困惑度可以看作下一个候选词数目的期待值,越小准确度越高,模型表现越好。

BLEU

机器翻译的评价标准。

衡量翻译得到的句子和源句之间相同的程度,越大说明翻译的越准确。