1 文本预处理

文本预处理常见步骤:
1 读入文本
2 分词
3 建立字典,将每个词映射到一个唯一的索引(index)
4 将文本从词的序列转换为索引的序列,方便输入模型

为了方便模型处理,我们需要将字符串转换为数字。因此我们需要先构建一个字典(vocabulary),将每个词映射到一个唯一的索引编号。
语料库,分词等。
将词进行向量化

2 语言模型

小结2:文本预处理、语言模型、循环神经网络基础
n-gram
n-1阶马尔科夫假设
小结2:文本预处理、语言模型、循环神经网络基础
举例:
小结2:文本预处理、语言模型、循环神经网络基础

采样

随机采样:
小结2:文本预处理、语言模型、循环神经网络基础
相邻采样:
小结2:文本预处理、语言模型、循环神经网络基础

3 循环神经网络基础

小结2:文本预处理、语言模型、循环神经网络基础
困惑度
我们通常使用困惑度(perplexity)来评价语言模型的好坏。回忆一下“softmax回归”一节中交叉熵损失函数的定义。困惑度是对交叉熵损失函数做指数运算后得到的值。特别地,

最佳情况下,模型总是把标签类别的概率预测为1,此时困惑度为1;
最坏情况下,模型总是把标签类别的概率预测为0,此时困惑度为正无穷;
基线情况下,模型总是预测所有类别的概率都相同,此时困惑度为类别个数。
显然,任何一个有效模型的困惑度必须小于类别个数。在本例中,困惑度必须小于词典大小vocab_size。

定义模型训练函数
跟之前章节的模型训练函数相比,这里的模型训练函数有以下几点不同:

使用困惑度评价模型。
在迭代模型参数前裁剪梯度。
对时序数据采用不同采样方法将导致隐藏状态初始化的不同。