NLP 学习 - 3分类问题命名实体识别

NLP中的分类问题

2020年9月4日


一、分词算法

  • Jieba分词 http://github.com/fxsjy/jieba
  • SnowNLP https://github.com/isnowfy/snownlp
  • LTP   https://www.ltp-cloud.com/
  • HanNLP  https://github.com/hankcs/HanLP/

已经解决的问题,直接使用

二、词性标注(POS Tagging)

  • 句子中的每个单词被分类为一种词性,如动词,名词等
  • 词性标注的过程依赖当前单词以及它的上下文信息
  • 词性标注问题也叫做序列标注(sequence labeling)问题
  • 很多时候,可以作为上游任务的特征

1. sequence labeling当做分类问题

  • 每个单词独立地去做分类
  • 对于当前单词以及上下文单词(sliding window)提取特征,并用这些特征去做分类

我想要分析bootcamp这个单词是什么词性,我们可以划定一个范围,例如包含bootcamp附近的一小句话就可以提取各种特征,例如:

  • bootcamp 本身可以当做一个特征
  • mp 提取最后两个字符
  • camp 提取后面四个字符
  • 8 这个单词由8个字符组成
  • 0 这个单词是否是大写开头的
  • take the ... take the 加另外的词作为特征
    这样我们就得到了一个特征向量feature vector,可以再使用分类模型

但是这种方法论还是存在一定的问题,因为我们是将其一个个词进行分析,并没有将句子的连续性放到句子中考虑,比它更优秀的是下面的方法论

2. sequence labeling当做序列问题

  • 利用概率来表示序列
  • 考虑单词之间的前后依赖关系
  • 常见的算法:
    隐马尔科夫模型 (Hidden Markov Model)
    条件随机场 (Conditional Random Fields)

现在使用的都是条件随机场的变种,训练模型例如:LSTM-CRF、Ber-BILSTM-CRF,都是基于CRF的,文本领域更倾向于使用CRF

三、命名实体识别(NER)

“张三” 人名
“北京” 地名

你可能感兴趣的:(NLP 学习 - 3分类问题命名实体识别)