作业2:语言模型训练与评估
一、实验目标
- 扩充实验中使用的语料,确保新增的语料与第一次作业使用的语料相同或非常相似。
- 掌握如何使用N-gram模型训练语言模型(N = 2,3,4)。
- 学习使用神经网络模型(包括但不限于前馈网络、RNN等)训练语言模型。
- 通过计算困惑度,定量对比N-gram语言模型和神经网络语言模型的效果。
- 基于生成概率评估语言模型的表现,并通过模型生成文本进行定性分析。
二、实验内容与步骤
步骤1:语料扩充
- 在第一次作业使用的语料基础上,扩充语料库,确保新增语料与之前使用的语料属于相同或相近的领域。
- 请说明新增语料的来源,附上相关链接(如GitHub或其他公开资源)。
步骤2:数据预处理
- 参考第一次作业中的代码,对扩充后的语料进行预处理,包括中文分词、去停用词、清理噪声数据等。
- 预处理后的数据格式需要适用于训练语言模型,请确保数据存储格式和处理步骤的合理性。
步骤3:训练N-gram语言模型
- 使用扩充后的语料,训练不同阶数(N=2,N=3,N=4)的N-gram语言模型。
- 请在Jupyter Notebook中展示训练过程并计算各模型的困惑度。
步骤4:训练神经网络语言模型
- 使用扩充后的语料,训练神经网络语言模型(如前馈神经网络或RNN等)。
- 请展示训练过程并计算困惑度,记录最优参数。
步骤5:模型评估
- 对N-gram语言模型和神经网络语言模型,在相同的测试集上计算困惑度。
- 通过生成文本来评估模型的生成能力,比较两种模型生成文本的质量和多样性。
步骤6:定性分析与文本生成
- 使用N-gram和神经网络模型,生成一定长度的随机文本。
- 对比两种模型在文本生成中的表现,进行定性分析,包括文本的连贯性、语义合理性等。
三、实验提交要求
- 在Kaggle平台上完成实验,每一步操作需要在Jupyter Notebook中详细说明,提供必要的实验解释。
- 导出Jupyter Notebook文件(ipynb格式)。
- 将Jupyter Notebook文件和所有相关数据文件打包成ZIP格式压缩包,通过慕课平台(提交链接)在线提交。