1.1 自然语言处理的应用
拼写检查,关键词搜索
文本挖掘
文本分类
机器翻译
客服系统
复杂对话系统
1.2 语言模型
举个例子:
这里有一句话:“我今天下午打篮球。”
p(S)是称为语言模型,即用来计算一个句子概率的模型。
如下的语言模型,会造成数据过于稀疏,参数空间太大。
用下述的方式可以解决上面的问题。如下:
假设下一个词的出现依赖于它前面的一个词
假设下一个词的出现依赖于它前面的两个词
我们以下面的一个简单的词库表来讲解。如下所示是一个词库表。
下方的数字是每一个词在词库中 出现的次数。
将该词频转化为n*n的矩阵,其中n-gram=1。
我们可以从该矩阵得知单词 “i”后面接“want”的次数为827次,“i”后面接“eat”的次数为9次,以此类推。
然后将上述矩阵转化为概率转移矩阵。如下所示:
如下即为“I want chinese food”概率计算公式:
下图是模型参数数量和n-gram参数个数的关系:
1.3 两个基础模型(CBOW and skip-gram)
模型结构如下:
我们首先看CBOW模型,它是根据上下文来预测当前词,而Skip-gram模型则是根据当前词,预测上下文。
CBOW是Continuous Bag-of-Words Model的缩写,是一种根据上下文的词语预测当前词语的概率模型。将其转化为极大似然估计,如下:
L=∑wclogp(w|Context(w))
我们看其训练步骤,如下所示: