文章目录

  • NLP 打卡Day2
  • Lesson 3 理论课:词法分析及其应用 学习笔记
  • 1. 词法分析概念
  • 2. 词法分析技术的发展
  • 2.1 字符串匹配
  • 3. 实践案例LAC
  • 写在最后



本文基于百度飞浆Paddle平台

项目地址:

『NLP打卡营』实践课1:词向量应用演示

VisualDL官方说明文档

Embedding源码地址


NLP 打卡Day2

Lesson 3 理论课:词法分析及其应用 学习笔记

1. 词法分析概念


词法分析指对计算机语言心态进行分析,并判断词的结构和类别等

主要有下面三个任务:

  • 分词
  • 词性标注
  • 实体识别

具体任务如下所示:

NLP 中文词性标注代码 nlp 词法分析_python

句法分析、文本分类、信息抽取等应用

?如果以字为粒度:对于词语来说太小了,如“张”含有张开或者姓氏之意

2. 词法分析技术的发展


  • 基于词典
  • 字符串匹配:向前、向后最大匹配
  • 统计语言模型:N-Gram
  • 基于序列标注
  • 统计方法:HMM, CRF等
  • 深度学习方法:LSTM+CRF, FLAT等

2.1 字符串匹配

  • 基于字符串匹配方法
  • 前向/后向/最大匹配、最少词数、策略组合
  • 戴表应用:MMSEG分词、IK分词
  • 优点:简单可控
  • 缺点:难以解决歧义、新词的问题
  • 基于语言的模型
  • 先基于词表匹配
  • 将所有可能的路径画出来(包括单字的)
  • 计算所有路径中概率最大的路径出来
  • 应用:jieba、ICTCLAS(NLPIR)
  • 缺点:难以解决新词的问题

NLP 中文词性标注代码 nlp 词法分析_paddle_02

NLP 中文词性标注代码 nlp 词法分析_飞浆_03

如上图,两项的乘积,虽然上面的P概率大,但是对应有惩罚项(/n)

  • 基于序列标注的方法
  • 一开始不知道那个分词,我们可以对词语中的每个字打上一个标签
  • 对于每一个字,只需要分辨是否是词头还是词序即可
  • BIO转换

NLP 中文词性标注代码 nlp 词法分析_NLP 中文词性标注代码_04

B:序列词头

I:序列词序(相当于一个短语里面除第一个字之外的字)

O:在序列中表示Other,在命名体识别中我们不关心的词

  • RNN实现序列标注

NLP 中文词性标注代码 nlp 词法分析_python_05

仅仅使用RNN的问题:标签有顺序的,会有以下逻辑错误

为解决这一问题,引出了CRF的线性链条件随机场

NLP 中文词性标注代码 nlp 词法分析_NLP 中文词性标注代码_06

OOV:Out Of Vocabulary

一般训练使用Bi-LSTM+CRF

NLP 中文词性标注代码 nlp 词法分析_机器学习_07

3. 实践案例LAC


NLP 中文词性标注代码 nlp 词法分析_paddle_08