一、学习目标
1.了解汉语分词的要点和汉语分词方法
2.学习命名实体识别的一些规则
3.了解子词压缩和词性标注的思想
二、分词和词性标注任务概述
1.分词的重要性:
在本章中,我们主要关注中文的分词任务。
2.词性标注的重要性:
在中文NLP任务中,在模型处理的数据层面,基于词建立的模型性能优于以字和子词建立的模型。
在具体任务中,词性在文本分类、情感分析、自动文摘等任务中具有重要的作用。
三、汉语分词要点
1.汉语分词的问题:
(1)什么是词?
对于什么是词,我们中国人都不太好区分,所以这也大大加深分词的难度。
(2)交集型歧义。即一个句子中相邻的字可以相互组合成词。如:
为了定义这种现象,我们用交集串来设定:
(3)组合型歧义
(4)未登录词/集外词的出现:
2.汉语分词的原则
(1)基本原则:比较硬性、理论上更优
(2)辅助原则:操作性原则,富于弹性,这才是实际分词的原则
总结而言,在辅助原则中,合并原则更主要,“能合并就合并”,除非合并后词太过冗长。
3.分词效果的评判标准
例子如下:
四、汉语分词方法
1.基于词典的切分方法
例子如下:
优缺点分析:
2.基于语言模型的分词方法
这个思想在前面第4课讲过。其优缺点有:
3.由字构词的分词方法(条件随机场)
对应到条件随机场(CRFs)中:
将CRFs写成数学模型:
画成图示,就是:
接下来计算给定X如何计算出Y是什么:
大括号中间的两部分可以进行合并,最后可以得到我们CRFs的最后计算出条件概率:
其实很明显看出,CRFs和HMM(隐马尔科夫模型)很像,特别是二者都有转移概率和标记概率。但二者要解决的问题是不太一样的,CRFs是得到每个点的标签,HMM是得到最大可能的X序列:
有了条件概率后,我们就可以得到我们的损失函数,对其正则化后,使用梯度下降法就可以迭代出我们的结果:
整体的算法流程如下:
与HMM一样,还有一个解码问题,对于给定X=x1x2...xT,我们训练好的模型应该如何得到最优的标记序列。要记住,模型并不能一步到位计算出T个x的标记序列,而是一个一个获得。于是还是要用Viterbi搜索法:
其思想就是:第一步计算出x1前3大概率的标记,再计算x1在这三种标记下,x2的所有标记,保留x2前3大概率的标记...直至最后。
4.神经网络方法
具体框架:
五、命名实体识别(NER)
1.什么是命名实体
2.如何进行命名实体识别
3.一些校正规则
4.NER的主要问题:
(1)过于依赖训练样本,鲁棒性太差。(生词识别)
(2)训练样本太少,主要集中于新闻领域。(领域差异)
六、子词压缩
1.现有字词存在的问题:
2.子词压缩的基本思路:
3.BPE算法的基本思想:
一个例子:“/”是人工的划分结果,机器一开始把字都按空格分开:
如果语料库足够大,实际上,可以找到更多的词。
七、词性标注
1.面临的问题
在中文中的问题更多: