新手探索NLP(十五)——终章

目录

 

中文语音的机器处理

汉语语言学的研究

未登录词识别

概率图模型

信息熵

互信息

联合熵

条件熵

统计语言模型

扫描二维码关注公众号,回复: 11606068 查看本文章

隐马尔科夫模型

Viterbi算法

最大熵模型

最大熵原理

GIS实现

条件随机场模型

概念:

线性链条件随机场

不同模型的比较与总结

词性、语块和命名实体识别

词性

语块

命名实体识别

句法理论和自动分析

理论基础

句法分析

PCFG短语结构

NLP中的深度学习

LSMT

信息的筛选

新信息的存放

更新状态

输出

损失函数


中文语音的机器处理

交集型切分歧义:汉字串AJB满足AJ、JB同时为词,此时J称为交集串。

组合型切分歧义:汉字串AB满足A、B、AB同时为词。

规律:一个词汇的出现于其上下文环境中出现的词汇序列存在紧密的关系。

文本中第n个词的出现于其前后n-m到n+m个词有高度相关性,我们把[-m,m]称为窗口范围。

汉语语言学的研究

未登录词识别

大约九成是专有名词,其余为通用新词和专业术语。

在NLP研究中,通常将专有名词和数字、日期等称为命名实体。

概率图模型

信息熵

对平均不确定性的度量。约定0log(1/0) = 0。一般而言,log以2为底,熵的单位是比特。

  • H(X)>=0
  • H(X)<=log|X|,当且仅当X的所有取值x有P(X=x) = 1/|X|等号成立。

互信息

联合熵

借助联合概率分布对熵的自然推广。

条件熵

利用条件概率分布对熵的延伸。

两个随机变量相互独立 <=> 两者互信息为0.

两种模型的区别和联系

统计语言模型

计算句子中某种语言模式出现概率的统计模型。

实际应用中一般取用n=3的三元模型。

隐马尔科夫模型

缺点:随着矩阵的增大,计算量将急剧增大。

Viterbi算法

最大熵模型

一个单独的词可以用k种词性,所有词性出现的概率总和需为1。按照最大熵原理,在没有任何约束条件的情况下,尽可能将概率均匀地分配。也可以引入一大批语料,记录下其中某几个词性的统计结果,作为约束条件。

特征(feature)是(x,y)的二维函数;约束(constraint)是一个等式,即模型的特征期望值等于样本中训练函数的期望值。

最大熵原理

GIS实现

最大熵模型中比较容易实现的算法。

步骤:

条件随机场模型

概念:

团:无向图G的某个子图S,若S中的任何两个节点均有边,则S称为G的团。

最大团:若C是G的一个团,并且不能再加入任何一个G的节点使之成为团,则C是G的最大团。(注意这里最大团与C中拥有的节点数无关)

无向图的因子分解:对于一个无向图而言,其联合分布可以表示成最大团上的随机变量函数的乘积形式。

线性链条件随机场

变形的来由:Y=a*X1*X2*...*Xn(正函数)可以写作Y=exp(log(a) + log(X1) + log(X2) + ... + log(Xn))。参数Xi之间的相乘关系变为相加,便于推导。

不同模型的比较与总结

隐马尔可夫模型(Hidden Markov Model,HMM),最大熵马尔可夫模型(Maximum Entropy Markov Model,MEMM)以及条件随机场(Conditional Random Field,CRF)是序列标注中最常用也是最基本的三个模型。HMM首先出现,MEMM其次,CRF最后。

三个算法主要思想如下:HMM模型是对转移概率和表现概率直接建模,统计共现概率。MEMM模型是对转移概率和表现概率建立联合概率,统计时统计的是条件概率,但MEMM容易陷入局部最优,是因为MEMM只在局部做归一化。CRF模型中,统计了全局概率,在 做归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置(label bias)的问题。

举个例子,对于一个标注任务,“我爱北京天安门“, 标注为” s s  b  e b c e”。

对于HMM的话,其判断这个标注成立的概率为 P= P(s转移到s)*P(‘我’表现为s)* P(s转移到b)*P(‘爱’表现为s)* …*P()。训练时,要统计状态转移概率矩阵和表现矩阵。

对于MEMM的话,其判断这个标注成立的概率为 P= P(s转移到s|’我’表现为s)*P(‘我’表现为s)* P(s转移到b|’爱’表现为s)*P(‘爱’表现为s)*..训练时,要统计条件状态转移概率矩阵和表现矩阵。

对于CRF的话,其判断这个标注成立的概率为 P= F(s转移到s, ’我’表现为s)….F为一个函数,是在全局范围统计归一化的概率而不是像MEMM在局部统计归一化的概率。当前,最后出现的CRF在多项任务上达到了统治级的表现,所以如果重头搞应用的话,大家可以首选CRF。

本质上,CRF有以下三个优点:

  1. CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活(与ME一样) ————与HMM比较
  2. 同时,由于CRF计算全局最优输出节点的条件概率,它还克服了最大熵马尔可夫模型标记偏置(Label-bias)的缺点。 ­­————与MEMM比较
  3. CRF是在给定需要标记的观察序列的条件下,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布。

凡事都有两面,正由于这些优点,CRF需要训练的参数更多,与MEMM和HMM相比,它存在训练代价大、复杂度高的缺点。

词性、语块和命名实体识别

词性

汉语缺乏形态变化,无法从词的形态变化判断词性。另外汉语常用词的兼类现象严重,占总词频比例高。

因此,汉语的词性标注主要任务与分词差别不大,主要是消除歧义。

语块

定义:句内的非递归核心成分。

常用领域:知识库的实体关系抽取。

命名实体识别

定义:识别人名、地名、机构名称、日期、时间、百分数、货币。

常用领域:信息检索、机器翻译、问答系统。

句法理论和自动分析

理论基础

推导树和依存树。

NLTK生成推导树:

# -*- coding: utf-8 -*-
import sys, os
import nltk
from nltk.corpus import treebank
from nltk.tree import Tree
# from treelib import *

reload(sys)  # 设置 UTF-8输出环境
sys.setdefaultencoding('utf-8')

sent = "(IP (NP (NR 张帅)) (VP (VV 参加)(AS 了) (NP (NN 会议))))"
tree = Tree.fromstring(sent)
tree.draw()

注意在调用Tree.fromstring方法的时候,括号内的字符串分割需要为英文括号(当然也可以通过修改参数的方式改变)。

依存树:

LTP的树状图不仅能给出树状图,还可以给出依存关系。依存树上链接词汇的每条弧代表了词汇间的支配和从属关系。

句法分析

PCFG短语结构

基于概率的短语结构分析,Probabilistic CFG。

1. 给定句子W和PCFG G, 如何快速计算P(W|G)?

内向算法

外向算法

2. 如何找出最佳句法树

Viterbi算法

3. 如何估计参数G,使得P(W|G)最大?

EM算法

NLP中的深度学习

LSMT

RNN的变种,通过对循环层的刻意实际来避免长期依赖和梯度消失等问题。

信息的筛选

由sigmoid完成的忘记门

通过传入x_{t}h_{t-1},使用sigmoid函数输出0或者1。

新信息的存放

其中的sigmoid函数被称为输入门。

更新状态

输出

损失函数

参考:

猜你喜欢

转载自blog.csdn.net/qq_40136685/article/details/90668518