第8章 文本信息抽取.pptx
第八章文本信息抽取《自然语言处理》自然语言处理教材编写组
目录01命名实体识别02实体关系抽取03事件抽取
命名实体识别01
1.命名实体识别的定义命名实体识别(NamedEntityRecognition,NER)是指在文本中识别出特殊对象,如人、地点、组织机构等。举例:“杨倩枪法精准,拿下了东京奥运会的第一枚金牌,使《义勇军进行曲》响彻东京”。命名实体识别要在上面这个句子中识别出“杨倩”是一个人名,“东京”是一个地名。、问题:东京奥运会是命名实体吗?义勇军进行曲呢?
2.命名实体识别的研究方法概述基于规则的方法:利用专家手工制订的规则进行命名实体识别。举例:“赵某出生于山东省菏泽市曹县……于11月22日将刘某诉至菏泽市曹县人民法院”,构建规则,满足“地名+人民法院”的词认定为组织机构。基于传统机器学习的方法:基于传统机器学习的方法又可分为有监督和无监督的方式。有监督的方法将NER转换为多分类或序列标记任务。根据标注好的数据,人工构建特征工程,然后应用机器学习算法训练模型使其对数据的模式进行学习。例如隐马尔可夫模型(HMM)、支持向量机(SVM)和条件随机场(CRF)等。基于深度学习的方法:以端到端的方式自动检测对应输入语料中的实体类别,通过深度学习的方式自动发现隐藏的特征,抽取与实体相对应的语义信息,是现在主流的做法。
3.命名实体识别的标注形式粗粒度命名实体识别对实体类别的划分比较简单,通常只是把实体划分为人名、地名、组织机构和其他四种类型。●PER,即Person,表示人物,如MichaelJordan、姚明。●ORG,即Organization,表示机构,如WorldHealthOrganization、市政府。●LOC,即Location,表示地点,如NewYork、北京。●MISC,即Miscellaneous,表示其他实体,需要区分于标注O,MISC表示其他实体,如“东京奥运会”是一个其他实体,而O表示不属于实体的其他词。
3.命名实体识别的标注形式IOBES标注方式为例:●B,即Begin,表示实体开头。●I,即Intermediate,表示实体中间。●E,即End,表示实体结尾。●S,即Single,表示单个词构成的实体。●O,即Other,表示其他,用于标记无关单词及字符。举例:MarkWatneyvisitedMars被标注为B-PER,E-PER,O,S-LOC。除此之外,有IOB、BIO等标注方式
5.基于LSTM的命名实体识别命名实体识别任务的一个经典的解决方法是:BiLSTM-CRF模型。它由双向的LSTM网络后叠加一个CRF层组成,其结构如图所示:获得结合上下文的双向表示CRF可保证输出序列是符合规则的获取词向量
以CoNLL2003(https://www.clips.uantwerpen.be/conll2003/ner)英语语料库数据集为例,该数据集采用BIO标注法,实体被分为四种类型:人物(PER),地名(LOC),组织(ORG),其他实体(MISC),即共9种标签,下图为数据集的一个例子。对于本节,只需要用到其中第一列和第四列的内容,即原文中的词和对应的实体标签5.基于LSTM的命名实体识别EUrejectsGermancalltoboycottBritishlamb.B-ORGOB-MISCOOOB-MISCOO
class?Conll03Reader:????def?read(self,?data_path):????????data_parts?=?[train,?valid,?test]????????dataset?=?{}????????for?data_part?in?tqdm(data_parts):????????????dataset[data_part]?=?self.read_file(str(os.path.join(data_path,?data_part+’txt’)))????????return?dataset
????def?read_file(self,?file_path):????????samples,tokens,tags?=?[],[],[]????????with?open(file_path,r,?encoding=utf-8)?as?fb:????????????for?line?in?fb:????????????????line?=?line.strip(\n’)
????????????????if?line?==?-DOCSTART-?-X