您的位置:首页 > 其它

统计语言模型

2017-05-07 15:34 239 查看
统计语言模型, Statistical Language Model.

1. 简介

自然语言具有上下文相关的特性, 所以统计语言模型就是为这种相关特性建立语言模型. 它是今天所有自然语言处理的基础.

判断一个句子是否合理, 就用概率来衡量.

一个句子就是一些词语的序列, 假定用S表示, S=w1,w2,...,wn, 那么S是一个通顺的句子的概率P(S)=P(w1,w2,...,wn).

利用条件概率的公式, 展开得

P(S)=P(w1,w2,...,wn)=P(w1)⋅P(w2|w1)⋅P(w3|w1,w2)⋅...⋅P(wn|w1,w2,...,wn−1)(1)

其中P(w1)表示第一个词出现的概率, P(w2|w1)表示w_1已经出现的前提下, w_2**挨着它**出现的概率, 以此类推.

前两个比较好算, 但第三个就涉及到了三个变量w1,w2,w3, 再往后就更难算了.

2.马尔可夫假设

假设一个词wi在某个位置出现的概率只与它前面的一个词wi−1有关, 这就是马尔可夫假设.

基于此假设, 式(1)就可以改写为

P(S)=P(w1,w2,...,wn)=P(w1)⋅P(w2|w1)⋅P(w3|w2)⋅...⋅P(wn|wn−1)(2)

3. n-gram model

式(2)对应的统计语言模型就是bi-gram model, 二元模型.

类似地, 假设一个词wi在某个位置出现的概率只与它前面的两个词wi−1,wi−2有关, 那么就得到了三元模型.

4.词袋模型

词袋, Bag of words.

对于一个文本,忽略其词法, 语法, 语义, 仅将其看做是一个词的集合, 文本中每个词的出现都是独立的, 那么就得到了词袋模型.

一个语料库由若干文本组成, 先计算出语料库的词袋, 然后就可以用词向量来表示每个文本.



文章A:
她很漂亮, 我都想去搭讪了.


文章B:
我去上学了.


词袋为
{她 ,很 , 漂亮 ,我 ,都, 想, 去, 搭讪, 了,上学}


文章漂亮搭讪上学
文章A1111111110
文章B0001001011

5.词向量

对词典D中的任意词w, 都可以用一个固定长度的实值向量v(w)∈Rm来描述. 我们称v(w) 是w的词向量, 维度为m.

5.1 one-hot

词袋模型中的文章(或 句子)向量可以看做所包含的词语的词向量加和, 即 ∑w∈该文章词集v(w).

其中每个词向量都有one-hot的特征, 即某一分量不为0 , 其他分量全为0.

one-hot有两个缺陷:

对于同义词等, one-hot 不能够表示这种相似关系.

词袋模型模型越大, 文章向量越稀疏, 这种维度的激增会对计算提出更高的要求.

5.2 distributed representation

对词典中的每一个词语都用固定长度的向量来表示, 不同于one-hot, 它形如

v(w)={0.054,−0.22,0.12,0.215,−0.17093,...}.

在word2vec中, 这个向量的维度是自定义的, 默认是100维.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: