NLP-Beginner是复旦大学自然语言处理组发布的自然语言入门练习项目。此项目包含了完成该项目中5道题所需的代码与报告。
- 一级文件目录的标号即为任务的编号。
- data文件放原始数据与预处理过后的数据。
- model文件夹保存模型的breakpoint。
- .vector_cache文件夹放预训好的词向量模型。
此任务要求仅用numpy实现基于logistic/softmax regression的文本分类。为了熟悉机器学习框架sklearn,在此任务的基础上附加了利用sklearn完成文本分类的实现。
熟悉Pytorch,用Pytorch重写《任务一》,实现基于CNN、RNN的文本分类。
基于LSTM的任务实现:代码
基于TextCNN的任务实现代码:代码
整体任务实现:报告
关于任务中所用到的相关模型以及框架的笔记:
输入两个句子判断,判断它们之间的关系。参考ESIM(可以只用LSTM,忽略Tree-LSTM),用双向的注意力机制实现。为了实现本任务我参考了开源项目:pytorch-nli,了解NLI基本的建模技巧。
关于任务中所用到的相关模型以及框架的笔记:
用LSTM+CRF来训练序列标注模型:以Named Entity Recognition为例。
关于任务中所用到的相关模型以及框架的笔记:
用LSTM、GRU来训练字符级的语言模型,计算困惑度
此任务为受任务三与任务五启发,利用较大型的对联数据集,基于BiLSTM训练对对联机器人。