1.人类语言的声音
语音学是音流,这是属于物理层面的东西
词法学:一个n-grams的代替方案
在基于单词的模型中存在一些问题:
需要处理很大的词汇表,在英语中单词只要变个形态就是另一个单词了,比如说:gooooood bye
2.字符级别模型
单词嵌入可以由字符嵌入表示:
能为不知道的单词生成嵌入
相似的拼写有相似的嵌入
解决了oov问题
传统来说,一个因素或者一个字母不是一个因素单元,但是深度语言模型把它们组合在一起了。
单词之下的书写系统
大部分深度学习的任务都是从语言的书写形式来处理语言的,这是一个简单的过程,需要寻找数据。
纯字符级模型
在上一堂课的句子分类中,我们看到了一个纯字符级模型的好例子:
用于文本分类的超深度卷积网络
Conneau,Schwenk,Lecun和Barrault EACL 2017
通过深度卷积堆栈获得强大结果
纯字符级NMT模型
luong和Manining测试了一个纯字符级的seq2seq(LSTM)NMT系统作为baseline,它和基于word level的模型一样运行的很好,但是在训练时非常耗费时间。下图来是该系统的BLEU评分:
无需显式细分的全字符级神经机器翻译
3.n-gram
N-Gram是基于一个假设:第n个词出现与前n-1个词相关,而与其他任何词不相关。(这也是隐马尔可夫当中的假设。)整个句子出现的概率就等于各个词出现的概率乘积。各个词的概率可以通过语料中统计计算得到。假设句子T是有词序列w1,w2,w3…wn组成,用公式表示N-Gram语言模型如下:
P(T)=P(w1)*p(w2)*p(w3)***p(wn)=p(w1)*p(w2|w1)*p(w3|w1w2)***p(wn|w1w2w3…)
一般常用的N-Gram模型是Bi-Gram和Tri-Gram。分别用公式表示如下:
一元Bi-Gram: P(T)=p(w1|begin)*p(w2|w1)*p(w3|w2)***p(wn|wn-1)
二元Tri-Gram: P(T)=p(w1|begin1,begin2)*p(w2|w1,begin1)*p(w3|w2w1)***p(wn|wn-1,wn-2)
除此之外,还有four-gram、five-gram等,不过n>5的应用很少见。