
14.8.4 输入表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
14.8.5 预训练任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
14.8.6 整合代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
14.9 用于预训练BERT的数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
14.9.1 为预训练任务定义辅助函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
14.9.2 将文本转换为预训练数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
14.10 预训练BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
14.10.1 预训练BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699
14.10.2 用BERT表示文本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
15 自然语言处理:应用 703
15.1 情感分析及数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
15.1.1 读取数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
15.1.2 预处理数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
15.1.3 创建数据迭代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
15.1.4 整合代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
15.2 情感分析:使用循环神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
15.2.1 使用循环神经网络表示单个文本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
15.2.2 加载预训练的词向量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
15.2.3 训练和评估模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
15.3 情感分析:使用卷积神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
15.3.1 一维卷积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
15.3.2 最大时间汇聚层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
15.3.3 textCNN模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
15.4 自然语言推断与数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
15.4.1 自然语言推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
15.4.2 斯坦福自然语言推断(SNLI)数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . 719
15.5 自然语言推断:使用注意力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
15.5.1 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
15.5.2 训练和评估模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
15.6 针对序列级和词元级应用微调BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
15.6.1 单文本分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
15.6.2 文本对分类或回归 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
15.6.3 文本标注 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
15.6.4 问答 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
15.7 自然语言推断:微调BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
15.7.1 加载预训练的BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
15.7.2 微调BERT的数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
15.7.3 微调BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
16 附录:深度学习工具 741
16.1 使用Jupyter Notebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
xiv