“New-stu-training”的版本间的差异
跳到导航
跳到搜索
| (未显示2个用户的45个中间版本) | |||
| 第1行: | 第1行: | ||
| + | == 李正华TODO == | ||
| + | 我的PPT不好,有的要简化,例如GB编码没有具体说明:两个字节,第一个字节怎么样。 | ||
| + | 有的需要更详细、更丰满。 | ||
| + | |||
== 说明 == | == 说明 == | ||
| 第6行: | 第10行: | ||
* 遇到一个题目,去下面的课件或讲义中寻找相关内容,进行快速学习和理解 | * 遇到一个题目,去下面的课件或讲义中寻找相关内容,进行快速学习和理解 | ||
** 做基础练习的时候,要关注主要知识点,不要陷入细枝末节,否则的话,进度就太慢了。比如随机过程,这个本身是非常大的一个概念,千万不要钻进去学习,了解其基本概念、例子即可。 | ** 做基础练习的时候,要关注主要知识点,不要陷入细枝末节,否则的话,进度就太慢了。比如随机过程,这个本身是非常大的一个概念,千万不要钻进去学习,了解其基本概念、例子即可。 | ||
| − | ** | + | ** 以正确完成编程题目为主要目标。我相信,等编程作业做完了,很多知识点就会有自己的理解了 |
| − | ** | + | ** '''做事情的三步:<font color="#FF0000">做出来、做对、做好</font>''' |
* 注意,<font color="#FF0000">千万不要直接看别人写好的代码,一定要努力自己去理解和消化。</font>一定要有一个自己思考的过程,尽最大努力自己写代码,即使效率低,准确率差,也没关系。通过自己的思考,逐渐优化和提高。这个过程非常重要,很有意义。 | * 注意,<font color="#FF0000">千万不要直接看别人写好的代码,一定要努力自己去理解和消化。</font>一定要有一个自己思考的过程,尽最大努力自己写代码,即使效率低,准确率差,也没关系。通过自己的思考,逐渐优化和提高。这个过程非常重要,很有意义。 | ||
* 另外,<font color="#FF0000">尽量不要在网上找各种参考资料。</font>虽然我的讲义很精简,但是如果仔细看,认真思考,推导,一定能搞明白。这个过程也很重要,对自我提升很有帮助。 | * 另外,<font color="#FF0000">尽量不要在网上找各种参考资料。</font>虽然我的讲义很精简,但是如果仔细看,认真思考,推导,一定能搞明白。这个过程也很重要,对自我提升很有帮助。 | ||
| 第14行: | 第18行: | ||
== 参考书目 == | == 参考书目 == | ||
| + | * Dan Jurafsky. [https://web.stanford.edu/%7Ejurafsky/slp3/ Speech and Language Processing][https://www.kancloud.cn/drxgz/slp20201230#/dashboard 中文翻译] (强烈推荐!) | ||
| + | * [http://neuralnetworksanddeeplearning.com/ Neural networks and deep learning](李正华强烈推荐,看完前三章就差不多了) | ||
| + | * Andrew Ng的视频:[https://mooc.study.163.com/university/deeplearning_ai#/c 吴恩达深度学习(带中文字幕)] | ||
* Chris Manning. 2005. 统计自然语言处理基础. | * Chris Manning. 2005. 统计自然语言处理基础. | ||
| − | |||
* 宗成庆. 2008. 统计自然语言处理. | * 宗成庆. 2008. 统计自然语言处理. | ||
* 李航. 2012. 统计学习方法. | * 李航. 2012. 统计学习方法. | ||
| − | * | + | * 神经网络与深度学习 |
| − | |||
... | ... | ||
| + | |||
| + | === 神经网络公开课第十三章:面向自然语言处理的神经网络 (苏州大学 李正华)=== | ||
| + | |||
| + | * [http://hlt.suda.edu.cn/~zhli/NLP-DL/13.1.mp4 第1节:从离散特征到连续稠密向量表示] | ||
| + | * [http://hlt.suda.edu.cn/~zhli/NLP-DL/13.2.mp4 第2节:表示学习] | ||
| + | * [http://hlt.suda.edu.cn/~zhli/NLP-DL/13.3.mp4 第3节:序列标注问题] | ||
| + | * [http://hlt.suda.edu.cn/~zhli/NLP-DL/13.4.mp4 第4节:句法树解析问题] | ||
== 数据(utf8编码) == | == 数据(utf8编码) == | ||
| 第58行: | 第70行: | ||
== 基础编程训练列表 == | == 基础编程训练列表 == | ||
| − | + | === 分字 === | |
| − | + | * 2022春IR课程视频和图片: | |
| − | + | ** 低画质:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/split-char-low-quality.mp4 作业1] | |
| − | * | + | ** 高画质:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/split-char-part-1.mp4 作业1-part1]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/split-char-part-2.mp4 作业1-part2] |
| − | * 数据:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/2-chinese-encoding/example.tar.gz 几个不同编码的文件],可以用hexdump查看。也可以自己生成不同编码的文件。 | + | ** 图片:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/split-char-figure-1.jpg 图1]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/split-char-figure-2.jpg 图2] |
| + | * UTF-8数据:[[文件:sentence.txt]] | ||
| + | * UFT-8编码规则: | ||
| + | <nowiki> | ||
| + | 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 </nowiki> | ||
| + | |||
| + | * 下面的内容可以不看 | ||
| + | ** 给定文件,将文件中的句子按照字(字符)切分,字符中间用空格隔开。用C/C++实现。Python(3.0)可以直接用split处理UTF8编码的字符串,也试试,对比一下结果。 | ||
| + | ** 参考资料:[[File:Chinese-encoding.pdf]] | ||
| + | ** 数据:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/2-chinese-encoding/example.tar.gz 几个不同编码的文件],可以用hexdump查看。也可以自己生成不同编码的文件。 | ||
=== 最大匹配分词 === | === 最大匹配分词 === | ||
| + | |||
| + | * 2022春IR课程视频和图片: | ||
| + | ** 低画质:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/word-seg-max-match-low-quality.mp4 作业3] | ||
| + | ** 高画质:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/word-seg-max-match.mp4 作业3] | ||
| + | ** 图片:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/word-seg-max-match.jpg 图] | ||
| + | |||
| + | * 数据下载: | ||
| + | ** 字典:[[文件:dict.txt]] | ||
| + | ** 待分词:[[文件:sentence.txt]] | ||
| + | ** 正确答案(人工标注的,你的模型的预测结果要和这个文件进行对比,从而得到P/R/F值):[[文件:answer.txt]]; | ||
| + | ** 正向最大匹配分词模型的预测结果(如果你的程序写对了,那么应该和这个结果一模一样):[[文件:out.txt]] | ||
| + | |||
| + | <nowiki> | ||
| + | *正确实验结果 | ||
| + | **正确识别的词数:20263 | ||
| + | **识别出的总体个数:20397 | ||
| + | **测试集中的总体个数:20454 | ||
| + | **正确率:0.99343 | ||
| + | **召回率:0.99066 | ||
| + | **F值:0.99204 | ||
| + | </nowiki> | ||
| + | * 下面的内容可以不看 | ||
* 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/5-chinese-word-segmentation/max-match.ppt 最大匹配] | * 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/5-chinese-word-segmentation/max-match.ppt 最大匹配] | ||
=== 有监督HMM词性标注 === | === 有监督HMM词性标注 === | ||
| − | * 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/7-hmm-tagging/collins-tagging.pdf Collins教授课件]、[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/7-hmm-tagging/main.pdf | + | * 图片和视频: |
| − | + | ** 低画质:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-1.mp4 第1部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-2.mp4 第2部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-3.mp4 第3部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-4.mp4 第4部分] | |
| − | + | ** 高画质:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-1-hd.mp4 第1部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-2-hd.mp4 第2部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-3-hd.mp4 第3部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-4-hd.mp4 第4部分] | |
| + | ** 图片:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-1.jpg 第1部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-2.jpg 第2部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-3.jpg 第3部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/HMM-part-4.jpg 第4部分] | ||
| + | * 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/7-hmm-tagging/collins-tagging.pdf Collins教授课件]、[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/7-hmm-tagging/main.pdf 李正华的课件]、[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/7-hmm-tagging/HMM-v2.pptx 理解HMM的Viterbi]、[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/7-hmm-tagging-MLE/main.pdf HMM模型中极大似然估计的由来(公式推导)] | ||
=== 基于线性模型(linear model)的词性标注 === | === 基于线性模型(linear model)的词性标注 === | ||
| − | * | + | * 要点:判别模型、partial feature |
* 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/9-linear-model/main2.pdf 李正华老师课件] | * 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/9-linear-model/main2.pdf 李正华老师课件] | ||
| + | * 图片和视频: | ||
| + | ** 视频:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/linear-model-1.mp4 第1部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/linear-model-2.mp4 第2部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/linear-model-3.mp4 第3部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/linear-model-4.mp4 第4部分]、[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/linear-model-5.mp4 第5部分] | ||
| + | ** 图片:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/linear-model-1.jpg 第1部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/linear-model-2.jpg 第2部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/linear-model-3.jpg 第3部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/linear-model-4.jpg 第4部分]、[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/linear-model-5.jpg 第5部分] | ||
| − | === | + | === 基于最大熵(max-entropy,log-linear)模型的词性标注 === |
* 要点:梯度下降方法,Adam优化 | * 要点:梯度下降方法,Adam优化 | ||
* 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/10-maxent-loglinear/main.pdf 李正华老师课件]、[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/10-maxent-loglinear/collins-loglinear.pdf Collins教授课件] | * 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/10-maxent-loglinear/main.pdf 李正华老师课件]、[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/10-maxent-loglinear/collins-loglinear.pdf Collins教授课件] | ||
| + | * 图片和视频: | ||
| + | ** 视频:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/Maximum-entropy-1.mp4 第1部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/Maximum-entropy-2.mp4 第2部分] | ||
| + | ** 图片:[http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/Maximum-entropy-1.jpg 第1部分]、 [http://hlt.suda.edu.cn/LA/Ir-2022-Spring/HMM/Maximum-entropy-2.jpg 第2部分] | ||
=== 基于全局线性模型(global linear model)的词性标注 === | === 基于全局线性模型(global linear model)的词性标注 === | ||
* 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/11-global-linear-model/main.pdf 李正华老师课件] | * 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/11-global-linear-model/main.pdf 李正华老师课件] | ||
| − | === | + | === 基于条件随机场(conditional random field,CRF)模型的词性标注 === |
* 要点:全局概率、期望、Forward-backward结合、viterbi解码 | * 要点:全局概率、期望、Forward-backward结合、viterbi解码 | ||
* 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/12-crf/main.pdf 李正华老师课件] | * 参考课件:[http://hlt.suda.edu.cn/~zhli/teach/cip-2015-fall/12-crf/main.pdf 李正华老师课件] | ||
| 第90行: | 第146行: | ||
=== 基于前馈神经网络(FFN)的词性标注 === | === 基于前馈神经网络(FFN)的词性标注 === | ||
* 要点:必须自己实现前向计算loss,和backpropagation。 | * 要点:必须自己实现前向计算loss,和backpropagation。 | ||
| − | * | + | * 参考:neural networks and deeplearning神经网络入门书籍 基本阅读完前三章即可完成本任务. [https://mooc.study.163.com/university/deeplearning_ai#/c 吴恩达深度学习(带中文字幕)] |
=== 基于FFN-CRF的词性标注 === | === 基于FFN-CRF的词性标注 === | ||
* 要点:仍然自己实现前向计算loss,和backpropagation。 | * 要点:仍然自己实现前向计算loss,和backpropagation。 | ||
* 提示:将神经网络输出看成发射矩阵,之后加上转移矩阵 | * 提示:将神经网络输出看成发射矩阵,之后加上转移矩阵 | ||
| − | |||
=== 基于BiLSTM的词性标注 === | === 基于BiLSTM的词性标注 === | ||
* 要点:可以利用Pytorch自带的。Dropout等的使用,是关键。 | * 要点:可以利用Pytorch自带的。Dropout等的使用,是关键。 | ||
| − | + | ||
=== 基于BiLSTM-CRF的词性标注 === | === 基于BiLSTM-CRF的词性标注 === | ||
| − | + | ||
| + | === github已有代码,不同同学的代码可以看不同的branch: === | ||
| + | |||
| + | [https://github.com/SUDA-LA/CIP github网址] | ||
== 后续自主学习扩展 == | == 后续自主学习扩展 == | ||
2024年8月11日 (日) 04:14的最新版本
李正华TODO
我的PPT不好,有的要简化,例如GB编码没有具体说明:两个字节,第一个字节怎么样。 有的需要更详细、更丰满。
说明
- 所有俱乐部同学,包括刚进入实验室的研究生,都要做NLP基础编程练习,一方面提高编程能力,另一方面打好机器学习和自然语言处理的基础
- 我们精心设计了一系列的基础练习作业,从简单到复杂,逐步深入:题目(课程)主页
- 请直入主题,从题目出发,按照推荐的顺序,逐一做
- 遇到一个题目,去下面的课件或讲义中寻找相关内容,进行快速学习和理解
- 做基础练习的时候,要关注主要知识点,不要陷入细枝末节,否则的话,进度就太慢了。比如随机过程,这个本身是非常大的一个概念,千万不要钻进去学习,了解其基本概念、例子即可。
- 以正确完成编程题目为主要目标。我相信,等编程作业做完了,很多知识点就会有自己的理解了
- 做事情的三步:做出来、做对、做好
- 注意,千万不要直接看别人写好的代码,一定要努力自己去理解和消化。一定要有一个自己思考的过程,尽最大努力自己写代码,即使效率低,准确率差,也没关系。通过自己的思考,逐渐优化和提高。这个过程非常重要,很有意义。
- 另外,尽量不要在网上找各种参考资料。虽然我的讲义很精简,但是如果仔细看,认真思考,推导,一定能搞明白。这个过程也很重要,对自我提升很有帮助。
- 任何一个理论或方法,从不同角度都可以进行解释,看的角度多了,就没有自己的角度了。网上的各种资料,都是从不同角度来说同一个事,看多了就乱了。
- 如果有问题,可以找自己的mentor去讨论,如果mentor也不懂,那说明mentor也没理解,就可以发邮件给老师。
参考书目
- Dan Jurafsky. Speech and Language Processing中文翻译 (强烈推荐!)
- Neural networks and deep learning(李正华强烈推荐,看完前三章就差不多了)
- Andrew Ng的视频:吴恩达深度学习(带中文字幕)
- Chris Manning. 2005. 统计自然语言处理基础.
- 宗成庆. 2008. 统计自然语言处理.
- 李航. 2012. 统计学习方法.
- 神经网络与深度学习
...
神经网络公开课第十三章:面向自然语言处理的神经网络 (苏州大学 李正华)
数据(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查看。也可以自己生成不同编码的文件。
最大匹配分词
- 数据下载:
- 字典:文件:Dict.txt
- 待分词:文件:Sentence.txt
- 正确答案(人工标注的,你的模型的预测结果要和这个文件进行对比,从而得到P/R/F值):文件:Answer.txt;
- 正向最大匹配分词模型的预测结果(如果你的程序写对了,那么应该和这个结果一模一样):文件:Out.txt
*正确实验结果 **正确识别的词数:20263 **识别出的总体个数:20397 **测试集中的总体个数:20454 **正确率:0.99343 **召回率:0.99066 **F值:0.99204
- 下面的内容可以不看
- 参考课件:最大匹配
有监督HMM词性标注
- 图片和视频:
- 参考课件:Collins教授课件、李正华的课件、理解HMM的Viterbi、HMM模型中极大似然估计的由来(公式推导)
基于线性模型(linear model)的词性标注
- 要点:判别模型、partial feature
- 参考课件:李正华老师课件
- 图片和视频:
基于最大熵(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:
后续自主学习扩展
基于图的依存句法分析
直接用神经网络实现即可。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