案例简介 情感分析旨在挖掘文本中的主观信息,它是自然语言处理中的经典任务。在本次任务中,我们将在影评 文本数据集(Rotten Tomato)上进行情感分析,通过实现课堂讲授的模型方法,深刻体会自然语言处 理技术在生活中的应用。 同学们需要实现自己的情感分析器,包括特征提取器(可以选择词袋模型、词向量模型和预训练模 型)、简单的线性分类器以及梯度下降函数。随后在数据集上进行训练和验证。我们提供了代码框架, 同学们只需补全 model.py 中的两个函数。 数据说明 我们使用来自Rotten Tomato的影评文本数据。其中训练集 data_rt.train 和测试集 包含了3554条影评,每条影评包含了文本和情感标签。示例如下: +1 visually , 'santa clause 2' is wondrously creative . data_rt.test 均 其中,+1 表示这条影评蕴涵了正面感情,后面是影评的具体内容。 文本特征提取 TODO:补全 featureExtractor 函数 在这个步骤中,同学们需要读取给定的训练和测试数据集,并提取出文本中的特征,输出特征向量。同 学们需要实现词袋模型、词向量模型和预训练模型(选做)来生成句子表示,并对比不同方法的表现有 何差异。 Bag of Words得到句子的0-1向量(选做:用TFIDF计算句子向量) Word2Vec词向量求和/取平均(选做:实现Doc2Vec[1]) 使用BERT得到[CLS]向量/词的隐状态取平均(选做) 训练分类器 TODO:补全 learnPredictor 函数 我们提供的训练数据集中,每句话的标签在文本之前,其中+1表示这句话蕴涵了正面感情,-1表示这 句话蕴涵了负面感情。因此情感分析问题就成为一个分类问题。 我们采用最小化hinge loss的方法训练分类器,假设我们把每条影评文本 映射为对应的特征向量 ,hinge loss的定义为 同学们需要实现一个简单的线性分类器,并推导出相应的梯度下降函数。 实验与结果分析 在训练集上完成训练后,同学们需要在测试集上测试分类器性能。本小节要求同学们画出训练集上的损 失函数下降曲线和测试集的最终结果(损失函数、准确率),并对结果进行分析。 评分要求 同学们需要提交源代码和实验报告。实验报告中应包含以下内容: 对hinge loss反向传播的理论推导,请写出参数的更新公式。 对实验结果的分析,请描述采用的模型结构、模型在训练集上的损失函数下降曲线和测试集的最终 结果,并对结果进行分析。分析可以从模型的泛化能力、参数对模型性能的影响以及不同特征的影 响等方面进行。 评分标准 正确推导并实现梯度更新函数(3分) 正确实现至少两种文本特征提取方法(4分) 对实验结果分析充分、报告完整(3分) (选做)实现改进算法(2分)
完整代码私信
2384

被折叠的 条评论
为什么被折叠?



