分词 & 词性标注
0 分词
0.1 含义
通过空格 或者 其他 边界标记 将汉字序列 按照一定的规范 切分成单词的词(可以单个、两个、三个…)
0.2 难点
-
分词规范缺少
-
歧义切分
如南京市长跑运动会 切分成南京市 还是南京 市长… -
未登录词识别
已有的词表中没有收录的词,或者已有的训练预料中未曾出现过的词
0.3 分词基本方法
- 基于词典的分词
本质是 字符串匹配方法: 正向最大匹配法、 逆向最大匹配法、 最小切分、 双向最大匹配
优点: 速度快,O(n) 的时间复杂度,实现简单,效果尚可
缺点: 对歧义和未登录词处理效果不佳
- 基于统计的分词
在给定大量已经分词的文本前提下,利用ML学习词语切分的规律(训练),从而对未知文本的切分: 最大概率分词方法和最大熵分词方法。
主要的统计模型:
N-gram,HMM,ME,CRF
基于统计的分词方法包括:
N-最短路径方法、基于词的 n 元语法模型的分词方
法、由字构词的汉语分词方法、基于词感知机算法的汉语分词方法、基于字的生成式模型和区分式模型相结合的汉语分词方法
- 基于深度学习的分词:
以最基本的向量化原子特征作为输入,经过多层非线性变换,输出层就可以很好的预测当前字的标记或下一个动作。
这类方法:首先对预料的字进行嵌入、得到word embedding后,将字嵌入特征输入给双向LSTM、输出层输出DL所学习到的特征,并输入给 CRF 层,得到最终模型。现有的方法包括:
LSTM+CRF、 BiLSTM+CRF
- 基于理解的分词
通过让计算机模拟人对句子的理解,达到识别词的效果。
基本思想:在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。
通常包括三个部分: 分词子系统、 句法语义子系统、 总控部分。
在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即模拟了人对句子的理解过程。
还处在试验阶段。
0.4 分词工具
- Jieba
- SnowNLP
- THULAC
- NLPIR
- StanfordCoreNLP
- HanLP
1 词性标注
1.1 含义
在给定句子中判定每个词的语法范畴,确定其词性并加以标注。
如“我爱自然语言处理技术” :
“我”是 代词 r ;
“爱”是 动词 v。
1.2 难点
1,汉语缺乏词形态变化,也没有时态
2,兼用现象十分常见,歧义
3,目前尚无统一的词性划分标准
1.3 常见方法
- 基于规则
早期的人工标注
2.基于统计模型
在有标记数据的大型语料库下进行训练
HMM 隐马尔科夫模型
CRF 条件随机域
3.基于统计和规则结合
前两种结合:对统计模型标准结果筛选,只对可疑的标注结果采用规则方法进行歧义消解
4.基于DL
当作序列标注任务来做
LSTM+CRF
BiLSTM+CRF
1.4 推荐
相关文章:
https://github.com/sebastianruder/NLP-progress/blob/master/english/part-of-speech_tagging.md
标注数据集:
https://pan.baidu.com/s/1fW908EQmyMv0XB5i0DhVyQ
标注工具:
- Jieba
- SnowNLP
- THULAC
- StanfordCoreNLP
- HanLP
- NLTK
- Spacy