统计语言模型, Statistical Language Model.
自然语言具有上下文相关的特性, 所以统计语言模型就是为这种相关特性建立语言模型. 它是今天所有自然语言处理的基础.
判断一个句子是否合理, 就用概率来衡量.
一个句子就是一些词语的序列, 假定用S表示, S=w1,w2,...,wn , 那么S是一个通顺的句子的概率 P(S)=P(w1,w2,...,wn) .
利用条件概率的公式, 展开得
假设一个词 wi 在某个位置出现的概率只与它前面的一个词 wi−1 有关, 这就是马尔可夫假设.
基于此假设, 式(1)就可以改写为
式(2)对应的统计语言模型就是bi-gram model, 二元模型.
类似地, 假设一个词 wi 在某个位置出现的概率只与它前面的两个词 wi−1,wi−2 有关, 那么就得到了三元模型.
词袋, Bag of words.
对于一个文本,忽略其词法, 语法, 语义, 仅将其看做是一个词的集合, 文本中每个词的出现都是独立的, 那么就得到了词袋模型.
一个语料库由若干文本组成, 先计算出语料库的词袋, 然后就可以用词向量来表示每个文本.
如
文章A: 她很漂亮, 我都想去搭讪了.
文章B: 我去上学了.
词袋为{她 ,很 , 漂亮 ,我 ,都, 想, 去, 搭讪, 了,上学}
文章 | 她 | 很 | 漂亮 | 我 | 都 | 想 | 去 | 搭讪 | 了 | 上学 |
---|---|---|---|---|---|---|---|---|---|---|
文章A | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
文章B | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 |
对词典D中的任意词w, 都可以用一个固定长度的实值向量 v(w)∈Rm 来描述. 我们称 v(w) 是w的词向量, 维度为m.
词袋模型中的文章(或 句子)向量可以看做所包含的词语的词向量加和, 即 ∑w∈该文章词集v(w) .
其中每个词向量都有one-hot的特征, 即某一分量不为0 , 其他分量全为0.
one-hot有两个缺陷:
对词典中的每一个词语都用固定长度的向量来表示, 不同于one-hot, 它形如
v(w)={0.054,−0.22,0.12,0.215,−0.17093,...} .
在word2vec中, 这个向量的维度是自定义的, 默认是100维.