New-stu-training

来自SUDA-HLT
Zhli讨论 | 贡献2022年2月28日 (一) 10:43的版本 →‎分字
跳到导航 跳到搜索

李正华TODO

 我的PPT不好,有的要简化,例如GB编码没有具体说明:两个字节,第一个字节怎么样。
 有的需要更详细、更丰满。

说明

  • 所有俱乐部同学,包括刚进入实验室的研究生,都要做NLP基础编程练习,一方面提高编程能力,另一方面打好机器学习和自然语言处理的基础
  • 我们精心设计了一系列的基础练习作业,从简单到复杂,逐步深入:题目(课程)主页
  • 请直入主题,从题目出发,按照推荐的顺序,逐一做
  • 遇到一个题目,去下面的课件或讲义中寻找相关内容,进行快速学习和理解
    • 做基础练习的时候,要关注主要知识点,不要陷入细枝末节,否则的话,进度就太慢了。比如随机过程,这个本身是非常大的一个概念,千万不要钻进去学习,了解其基本概念、例子即可。
    • 总之,一切以正确完成编程题目为主要目标,先做出来,然后做对,最后做好
    • 我相信,等编程作业做完了,很多知识点就会有自己的理解了
  • 注意,千万不要直接看别人写好的代码,一定要努力自己去理解和消化。一定要有一个自己思考的过程,尽最大努力自己写代码,即使效率低,准确率差,也没关系。通过自己的思考,逐渐优化和提高。这个过程非常重要,很有意义。
  • 另外,尽量不要在网上找各种参考资料。虽然我的讲义很精简,但是如果仔细看,认真思考,推导,一定能搞明白。这个过程也很重要,对自我提升很有帮助。
    • 任何一个理论或方法,从不同角度都可以进行解释,看的角度多了,就没有自己的角度了。网上的各种资料,都是从不同角度来说同一个事,看多了就乱了。
  • 如果有问题,可以找自己的mentor去讨论,如果mentor也不懂,那说明mentor也没理解,就可以发邮件给老师。

参考书目

...

神经网络公开课第十三章:面向自然语言处理的神经网络 (苏州大学 李正华)

数据(utf8编码)

CoNLL格式的含义

  • 每个词占一行,每行的第2列为当前词语,第4列为当前词的词性,第7列为当前词的中心词的序号,第8列为当前词语与中心词的依存关系。句子与句子之间以空行间隔。

最大匹配分词数据

词性标注数据

训练 开发
803句 1910句
训练 开发 测试
16091句 803句 1910句
  • 示例: 输入:严守一 把 手机 关 了 输出:严守一/NR 把/P手机/NN关/VV 了/SP

基础编程训练列表

分字

给定文件,将文件中的句子按照字(字符)切分,字符中间用空格隔开。用C/C++实现。Python(3.0)可以直接用split处理UTF8编码的字符串,也试试,对比一下结果。

1字节 0xxxxxxx
2字节 110xxxxx 10xxxxxx
3字节 1110xxxx 10xxxxxx 10xxxxxx
4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 

最大匹配分词

有监督HMM词性标注

基于线性模型(linear model)的词性标注

基于最大熵(max-entropy,log-linear)模型的词性标注

基于全局线性模型(global linear model)的词性标注

基于条件随机场(conditional random field,CRF)模型的词性标注

  • 要点:全局概率、期望、Forward-backward结合、viterbi解码
  • 参考课件:李正华老师课件

基于前馈神经网络(FFN)的词性标注

  • 要点:必须自己实现前向计算loss,和backpropagation。
  • 参考:neural networks and deeplearning神经网络入门书籍 基本阅读完前三章即可完成本任务. 吴恩达深度学习(带中文字幕)

基于FFN-CRF的词性标注

  • 要点:仍然自己实现前向计算loss,和backpropagation。
  • 提示:将神经网络输出看成发射矩阵,之后加上转移矩阵

基于BiLSTM的词性标注

  • 要点:可以利用Pytorch自带的。Dropout等的使用,是关键。

基于BiLSTM-CRF的词性标注

github已有代码,不同同学的代码可以看不同的branch:

github网址

后续自主学习扩展

基于图的依存句法分析

直接用神经网络实现即可。Biaffine Parser框架。

重点:Eisner动态规划解码算法(看我的COLING-2014 tutorial)

进而可以扩展到TreeCRF,将Eisner算法扩展为inside算法。

具体看我们的ACL-2020文章:Yu Zhang et al.

基于转移的依存句法分析

了解一下转移系统

Seq2Seq (RNN) NMT with attention

了解一下语言生成

Transformer NMT

这里面的技术细节很多。


无监督学习

HMM-EM

VAE

ELMo/BERT的原理