【自然语言处理】研究入门-实验目录

从零开始如何快速进入 NLP 的研究工作。

任何问题,争取通过搜索、交流、和查阅文献得到解决。

不要以书本为解决方案,基于书本的学习方式在研究生阶段不再适合。


  1. 首先具有较强的编码能力 - 这个需要练的,以 Leetcode 为主。
  2. 了解各种文本分类任务,去下载 SST2 或者 SST5 句子分类数据。
  3. 手写实现一个基于 n-gram 的最大熵分类器 (c++ & numpy)。 抽取 n-gram 特征,转化成为特征向量,实现模型参数矩阵,分类打分,计算概率,最大熵损失,计算模型参数反向梯度,最大熵优化,测试准确率,调参环节,一条龙体会机器学习。
  4. 利用深度学习库(例如pytorch)实现 n-gram 最大熵分类。
  5. 1-gram分类,使用预训练词向量进行句子分类,了解pooling,理解深度学习。
  6. 实现 CNN,理解 CNN 和 n-gram 的关系。
  7. 实现 LSTM,理解 LSTM 和 CNN 的关系。
  8. 实现 Self-Attention,理解 pooling 和 SelfAttention 关系。
  9. 实现 Transformer,了解 Transformer 的各个组件。
  10. 理解 word2vec 以及语言模型,动手实现 word2vec。
  11. 学会使用 ELMo。
  12. 学会使用 BERT,了解 BERT 分词机制。
  13. 查找相关论文,了解自己的分类模型和 SOTA 的区别,撰写文档。
  14. 了解 NER 与序列标注,下载 conll03 和 GermEval2014 数据。
  15. 实现 BiLSTM-CRF 模型。
  16. 实现 BERT-(BiLSTM)-CRF 模型,学会处理异常情况。
  17. 了解中文分词,查找相关数据,实现分词模型。
  18. 查找相关论文,了解对应数据 SOTA 结果,撰写文档。
  19. 了解各种序列标注任务。
  20. 附加题:多选一,代码 + 报告。
  • 多模态蕴含分类任务
  • 多语言序列标注任务
  • 句法结构分析
  • 结构化语义分析
  • 逻辑语义分析
  • 词表示方法,从单语言到多语言
  • Seq2Seq 模型及其应用
  • 变分模型及其应用
  • 自然语言处理中的生成对抗方法