New-stu-training

来自SUDA-HLT
跳到导航 跳到搜索

李正华TODO

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

说明

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

参考书目

...

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

数据(utf8编码)

CoNLL格式的含义

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

最大匹配分词数据

词性标注数据

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

基础编程训练列表

分字

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 
  • 下面的内容可以不看
    • 给定文件,将文件中的句子按照字(字符)切分,字符中间用空格隔开。用C/C++实现。Python(3.0)可以直接用split处理UTF8编码的字符串,也试试,对比一下结果。
    • 参考资料:文件:Chinese-encoding.pdf
    • 数据:几个不同编码的文件,可以用hexdump查看。也可以自己生成不同编码的文件。

最大匹配分词

  • 2022春IR课程视频和图片:
  • 数据下载:
    • 字典:文件:Dict.txt
    • 待分词:文件:Sentence.txt
    • 正确答案(人工标注的,你的模型的预测结果要和这个文件进行对比,从而得到P/R/F值):文件:Answer.txt
    • 正向最大匹配分词模型的预测结果(如果你的程序写对了,那么应该和这个结果一模一样):文件:Out.txt
*正确实验结果
**正确识别的词数:20263
**识别出的总体个数:20397
**测试集中的总体个数:20454
**正确率:0.99343
**召回率:0.99066
**F值:0.99204

有监督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的原理