一、统计分词综述
1.概念
基于统计的分词算法的主要核心是词是稳定的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻出现的概率或频率能较好地反映成词的可信度。可以对训练文本中相邻出现的各个字的组合的频度进行统计,计算它们之间的互现信息。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可以认为此字组可能构成了一个词。该方法又称为无字典分词。
2.步骤
1.构建语言模型
2.对句子进行单词划分,划分结果运用统计方法计算概率,获取概率最大的分词方式。(统计方法如隐马尔可夫模型HMM,条件随机场CRF)
二、语言模型
1.概念
一个语言模型可以简单理解为一个句子 s 在所有句子中出现的概率分布 P(s)。举个简单的例子:
如果一个人所说的话语中每100个句子里大约有一句是Okay,则可以认为p(Okay) ≈ 0.01。而对于句子“An apple ate the chicken”我们可以认为其概率为0,因为几乎没有人会说这样的句子。
2.语言模型中的概率产生
我们先假设 S 表示某一个有意义的句子,S 是由一连串特定顺序排列的词组成,这里n是句子的长度,那么我们怎么获取句子 S 在一个语言模型中的概率?
它的概率可以表示为:
可是这样的方法存在两个致命的缺陷:
- 參数空间过大:条件概率P(wn|w1,w2,…,wn-1)的可能性太多,无法估算,不可能有用;
- 数据稀疏严重:对于非常多词对的组合,在语料库中都没有出现,依据最大似然估计得到的概率将会是0。
三、n元模型
1.马尔可夫假设
数学家马尔可夫针对无法计算上述公式这种情况,提出了一种偷懒且高效的方法:
每当遇到这种情况时,就假设任意一个词 wi 出现的概率只同它前面的词 wi-1 有关,这就是很有名的马尔可夫假设。
基于此思想,n-gram model诞生了。
2.n元模型
n元模型的思想就是:出现在第 i 位上的词 wi 仅与它前面的(n-1)个历史词有关。
通常情况下,n的取值不能太大,实际中, n=3是最常见的情况。n过小,产生的概率不够准确,n过大,计算量太大。
3.缺陷
- 无法建模更远的关系,语料的不足使得无法训练更高阶的语言模型。
- 无法建模出词之间的相似度。
- 训练语料里面有些 n元组没有出现过,其对应的条件概率就是 0,导致计算一整句话的概率为 0。
4.解决方法
解决这个问题有两种常用方法: 平滑法和回退法。
四、神经网络模型-NNLM
第一篇提出神经网络语言模型的论文是Bengio大神在2003年发表的《A Neural Probabilistic Language Model》。