当前课程知识点:计算思维与人工智能基础 > 第三部分:python基础 > 第十一章:人工智能在自然语言中的应用 > 11.2命名实体识别技术
接下来我们来讲命名实体识别技术
命名实体识别是自然语言处理当中的一个重要技术
它主要是指从输入的非结构化文本当中
检测或抽取人名
机构名
专有名词
日期时间等实体
包括三大类七小类
三大类主要为实体类
时间类和数字类
七小类为人名
地名
组织机构名
时间
日期
货币
百分比
目前的研究主要集中在人名
地名
组织机构名等专有名词的识别上
命名实体识别的研究
经历了早期基于规范化的方法
以及基于字典的方法
传统的机器学习方法
隐马尔可夫模型以及条件随机场等方法
随着深度学习的发展
命名实体识别研究有了基于深度学习的方法
包括循环神经网络和条件随机场的方法
以及卷积神经网络和条件随机场的方法
而近期研究者们开始在这些方法当中
引入Attention模型或使用迁移学习的方法
以及半监督的方法等进行研究
这当中
最主流的一种方法
也是目前应用最广泛的一种方法
是BiLSTM-CRF的方法
我们先来简单的介绍一下CRF的方法
CRF是条件随机场
我们来看这样的一个例子
Teddy bears are on sale
如果我们对他进行条件标注使用CRF的方法
我们可以把它标注为名词
名词
动词
介词
名词
或者名词
动词
动词
介词
名词
那么哪一种标注方法更为正确呢
CRF会建立一个条件随机场
首先定义一个特征函数集
为每一个特征函数都以整个句子S
当前位置I
位置和I-1的标签为输入
然后为每个特征函数赋予一个权重
针对每一个标注序列L进行加权求和
最后得到输出
刚才的例子当中我们会根据词性词法的一些规则
为标注赋予权重
显然动词后面紧跟动词的这种标注
是比较少见的
它的权重会更低
Teddy bears are on sale在经过CRF的计算之后
最终会趋于名词
名词
动词
介词
名词的标注
LSTM是基于循环神经网络而发展起来的
我们先来看简单的循环神经网络
一个简单的循环神经网络
在每一个时刻做决策时
都需要考虑上一时刻的决策结果
因此我们可以看到
当前的输入包括
X(t)和上一次Y(t-1)的决策结果
其中圆圈中的f代表一个激活函数
Σ代表两向量的内积
而一个典型的RNN他不只是简单接入上一时刻的决策结果
而是连接一个模糊而抽象的隐节点h
也就是一个增加了隐藏层的RNN
隐节点h是一段历史记忆融合后的隐藏层
但是如果我们在处理Teddy bears are on sale
这个标注问题的时候
如果我们仅考虑前三个单词Teddy bears are on sale的
Teddy bears are
我们仍然无法得出
Teddy 到底是一个人名或者不是
也就是说
我们希望能预测位置和相关信息之间的文本间隔能够更大
而RNN方法在长期传播时存在梯度消失或爆炸的问题
这样就需要我们设计长时记忆单元
也就是LSTM
LSTM在每个时刻呢输入有三个
从这张图大家可以看出
它包括了当前时刻网络的输入值Xt
上一时刻LSTM的输出值H t-1
以及上一时刻的单元状态Ct-1
那么到底如何来控制长期状态C呢
LSTM引入了三个门
分别为遗忘门
输入门和输出门
其中遗忘门决定上一时刻的单元状态Ct-1
有多少保留到当前状态Ct
输入门决定当前时刻网络的输入Xt有多少进入到当前状态Ct
而输出门用来控制单元状态Ct当中
有多少输出到LSTM的当前输出当中
所以遗忘门可以保存很久之前的信息
也就是长期的一个记忆功能
输入门能够避免当前无关紧要的一些内容进入记忆
而输出门控制了长期记忆对当前输出的影响
-章测试
-章测试
-第一章:python简介
--章测试
-第二章:编码规范
--2.2常量和变量
--章测试
-第三章:数据类型
--章测试
-第四章:基本运算
--4.2比较运算符
--4.3逻辑运算符
--4.4位运算符
--章测试
-第五章:程序控制结构
--5.1顺序结构
--5.2条件结构
--5.3循环结构
--5.4跳转结构
--5.5异常处理
--章测试
-第六章:函数、模块与面向对象
--6.2面向对象
--6.4模块与包
--章测试
-第七章:文件操作
--7.2文件的写入
--章测试
-第八章:python生态库
--章测试
-第九章:TensorFlow基础
--章测试
-第十章:实例分析与实践
--章测试
-第十一章:人工智能在自然语言中的应用
--章测试