文章目录
【一】 Inverted Index(倒排索引)
- Vocabulary:[ Word1, Word2, …, WordN ]
- Word1: [ Doc1, Doc2, … ];Word2: [ Doc1, Doc2, … ];WordN: [ Doc1, Doc2, … ]
- 建立倒排表,用于快速检索,如搜索引擎
【二】 Noisy Channel Model
- Bayes 贝叶斯公式:
P ( A ∣ B ) = P ( B ∣ A ) ⋅ P ( A ) P ( B ) P(A|B) = \frac { P ( B | A ) \cdot P ( A ) } { P ( B ) } P(A∣B)=P(B)P(B∣A)⋅P(A)
-
P
(
B
)
\bm {P(B)}
P(B) 一般为一个常数项,所以:
P ( A ∣ B ) ∝ P ( B ∣ A ) ⋅ P ( A ) P(A|B) ∝ P(B|A) \cdot P(A) P(A∣B)∝P(B∣A)⋅P(A)
- P ( B ∣ A ) \bm \red {P(B|A)} P(B∣A) 一般称为 Translation Model,即翻译模型
- P ( A ) \bm \red {P(A)} P(A) 一般称为 Language Model,即语言模型
- 应用场景一般与文本(text)有关,如 OCR,中英互译,密码破解,语音识别等
【三】 Language Model(语言模型)
- Chain Rule ( Bayes ): P ( W 1 , W 2 , W 3 , . . . , W n ) = P ( W 1 ) ∗ P ( W 2 ∣ W 1 ) ∗ P ( W 3 ∣ W 1 , W 2 ) . . . ∗ P ( W n ∣ W 1 , W 2 , . . . , W n − 1 ) P(W_1, W_2, W_3, ..., W_n) = P(W_1) * P(W_2 | W_1) * P(W_3 | W_1, W_2) \;...* P(W_n | W_1, W_2, ... , W_{n-1}) P(W1,W2,W3,...,Wn)=P(W1)∗P(W2∣W1)∗P(W3∣W1,W2)...∗P(Wn∣W1,W2,...,Wn−1)
【四】 Markov Assumption(马尔科夫假设)
- 一种 近似估计 方法,弥补 LM 的稀疏性
- N Order Assumption:考虑前 N 个单词
【五】 Unigram Bigram N-gram(基础语言模型)
- Unigram(0 Order Assumption): P ( W 1 , W 2 , W 3 , . . . , W n ) = P ( W 1 ) ⋅ P ( W 2 ) ⋅ P ( W 3 ) ⋅ . . . ⋅ P ( W n ) P(W_1, W_2, W_3, ..., W_n) = P(W_1) \cdot P(W_2) \cdot P(W_3) \cdot ... \cdot P(W_n) P(W1,W2,W3,...,Wn)=P(W1)⋅P(W2)⋅P(W3)⋅...⋅P(Wn)
- Bigram(1 Order Assumption): P ( W 1 , W 2 , W 3 , . . . , W n ) = P ( W 1 ) ⋅ P ( W 2 ∣ W 1 ) ⋅ P ( W 3 ∣ W 2 ) ⋅ . . . ⋅ P ( W n ∣ W n − 1 ) P(W_1, W_2, W_3, ..., W_n) = P(W_1) \cdot P(W_2 | W_1) \cdot P(W_3 | W_2) \cdot ... \cdot P(W_n | W_{n-1}) P(W1,W2,W3,...,Wn)=P(W1)⋅P(W2∣W1)⋅P(W3∣W2)⋅...⋅P(Wn∣Wn−1)
- N-gram(N-1 Order Assumption):不举例子了
【六】 Perplexity(一种评估语言模型的方法)
- Perplexity = 2 − x \bm {2 ^ {-x}} 2−x (越小越好):x(average log likelihood)
![](https://i-blog.csdnimg.cn/blog_migrate/22cdd4fd956407df933fcd20a7fbe900.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0afdbd6bcdf34eb20e00f595c5f23670.png)
- 主要针对 无监督(unsupervised)下的文本评估
【七】 Smoothing(解决冷启动问题)
【7.1】 Add-one Smoothing(拉普拉斯 Laplace)
![](https://i-blog.csdnimg.cn/blog_migrate/bb9630787c8640ad10e4335b59fd7d72.png)
【7.2】 Add-K Smoothing
![](https://i-blog.csdnimg.cn/blog_migrate/d676412d60437450c9ecbdb574e7778a.png)
【7.3】 Interpolation(考虑多种语言模型,如 Unigram + Bigram + Trigram)
![](https://i-blog.csdnimg.cn/blog_migrate/e9c7e7da55e957a4e1c070939197efea.png)
【7.4】 Good-Turning Smoothing
![](https://i-blog.csdnimg.cn/blog_migrate/39ff574f19c9513c5a4182f8ec412a6d.png)
- Good-Turning Smoothing 公式( N c N_c Nc 表示出现 c c c 次单词的个数)
![](https://i-blog.csdnimg.cn/blog_migrate/2052e2fb50138c63c781948d8dc3224e.png)
- Good-Turning Smoothing 缺点
单词次数的出现大多数情况下 不是连续的,解决方法是通过 机器学习 去拟合一条曲线,大致的估计空缺的值