NLP基础任务
1. 分词
最大匹配分词法:长度优先
1. 前向最大匹配(forward-max matching)
2. 后向最大匹配(backward-max matching)
这种算法有几个缺点:
1. 词典中没有(OOV,out of vocabulary)
2. 分词出现歧义 例如:武汉市长江大桥,会把市长和长江大桥同时分出来,产生歧义
现在有很多现成的模型以及第三方包几乎可以解决这些问题:
- jieba
- LTP
- hanNLP
- snowNLP
2. 词性标注(POS Tagging)
词性标注,part of speech,即标注句子中没个词的词性,是重要的基础性工作,为后续的句法分析奠定基础,也是一个已经解决的问题,可以用许多现成的第三方包解决。词性标注可以用两种模型的解决,分类模型和sequence labeling。
2.1 分类模型
用分类模型解决词性标注问题,将句子中的每个词看作一个独立个体,将每种词性看做不同的类,最优化独立化的每个词的分类结果。
2.2 sequence labeling
对当前词上下文提特征,并用特征做分类。利用概率来表示序列,考虑前后词的依存关系,可以使用隐马尔科夫模型或条件随机场。
3. 命名实体识别(NER)
3.1 什么是实体识别
命名实体识别是一种序列标注问题,是对句子中的重要信息进行标注,比人名PER,地名LOC,机构ORG等等,这是基本的标签库。
例如:我在某某大学的教室里学习。
抽取出实体:
我在某某大学的教室里学习。
PER ORG LOC
3.2 实体识别标注方式
NER是一种序列标注问题,因此他们的数据标注方式也遵照序列标注问题的方式,主要有两种标注方式:1)BIOES,2)BIO。
BIOES是指:
B,即Begin,表示开始
I,即Intermediate,表示中间
E,即End,表示结尾
S,即Single,表示单个字符
O,即Other,表示其他,用于标记无关字符
BIO和BIOES大同小异,有了这种标注方式就可以对标签库进行扩充:B-PER, I-PER, B-LOC, I-LOC, B-ORG, I_ORG等,依此类推。
例如:我在某某大学的教室里学习。
这句话可以标注为:
[B-PER, O, B-ORG, I-ORG, I_ORG, E-ORG, O, B-LOC, E-LOC, O, O, O]
3.3 实体识别的方法
- 人工标注
- HMM和CRF
- LSTM+CRF,LSTM作为特征抽取器,再接一个CRF层来作为输出层
- BERT+LSTM+CRF