这章主要介绍RNN原理以及在NLP的应用,在看了几个RNN的视频之后,对RNN基础知识有了了解,作为深度学习的小白来说,还是从基础到应用来做一个记录,在介绍神经网络之前,需要对模型的数据处理作一个了解,特别在NLP里面,数据的特征往往是文字或者字符串,我们需要将这些转化为机器学习模型能理解的特征
上面的Nationality为什么不从0开始编号呢,而是从1开始遍呢?
因为有缺失的数据,如果有一个新词不在词典中,那它的one-hot Enconding 编码就是全0
为什么要用one-hot向量来表示国籍,不能用索引编号1,2,3…,?这样还可以节省空间
如下图所示,假设用索引编号,美国加中国等于印度,这是不可能的
把文本变成单词的列表,分词
建立一个词典去计算词频
,可以用哈希表,如果在哈希表出现过,将表里的该词频数加1,如果没有在哈希表出现过,将该词加入哈希表,并将词频置为1,再排序从大到小,将词频变换为索引
,从第一个开始1,统计次词频的目的就是保留常用词,去掉低频词
为什么要去掉低频词呢?
不希望词汇量太大,以及后面one-hot向量维度过高,会降低计算速率,在嵌入层会有更多的参数会导致overfitting
通过查字典,可以得出每个词的one-hot向量
,在字典找不到的词,有可能是新词,也可能是拼写错误的词,在做one-hot Enconding 编码是可以忽略,也可以编码为0