信息抽取(information extraction, IE)是将非结构化或半结构化描述的自然语言文本转化成结构化特征的一种基础自然语言处理(NLP)任务,它包括三类子任务:
实体抽取(Entity Extraction)又名命名实体识别(Named Entity Recognition, NER)或专名识别,是指一类用于识别文本中具有特定意义的实体(名词)的技术。其实现过程可分为三步:
命名实体识别任务的目的是预测出输入序列文本中,每个token所属于的实体类别,它可以是已定义的某一实体种类别,也可以是非实体类别。因此,命名实体识别可以抽象成一种文本分类任务,其预测模型可采用以下四类:
其中,前两种方法常用作Baseline,或为后两种机器学习方法提供预测特征(作为人工特征工程中设计的一类特征),生产环境下最常用的还是基于CRF的命名实体识别(一种时序模型方法)。
基于规则的命名实体识别有两种常见方法:
基于规则的实体识别方法虽然简单,实际上也比较实用,特别是对于一些垂直领域的应用,或者数据量比较少或者没有标签数据的时候。如果我们有一个足够丰富的词典库,那么仅仅根据词库也能做到不错的准确率。另外,基于规则的识别方法是一套非常有效的基准(baseline)。
基于统计的命名实体识别是一种特别的词库匹配方法。它基于已有的语料实体识别结果,统计每一个token被标记为每一种实体的频数,然后取频数最高的类别作为此token的实体标记存入数据库;在命名实体识别时通过数据库匹配的方式,查找文本token的实体类别。这种方法对于某一类单词(可以同时属于多个实体类别,而且不确定性较高)有效性会比较弱。
在非时序模型不考虑token出现的先后顺利,它独立预测文本中每个token属于哪个实体类别。常用的有随机森林、SVM和神经网络等非时间序列模型。
时间序列模型是命名实体识别的最常用方法,一般生产中多通过人工特征工程+CRF,或LSTM/Bert等深度学习方法自动特征工程方法+CRF来进行预测。
常用的人工特征工程方法有:
此外,还可以将Baselin NER标签也作为特征添加进来:
实体消岐(Entity Disambiguiation)是指:对具有多种可能实体类型的token,明确其在上下文中所表示的实体类型(就像明确上下文中,多义词所表达的含义一样)。
其具体实现方法是:
指代消解:是将代表同一实体(Entity)的不同指称(Mention)划分到一个等价集合(指代链,Coreference Chain)中的过程,能有效解决文本当中的指代不明问题。
实体统一(Entity Resolution):是统一同一个实体的多种不同表达方式的过程(如:某人的大名、小名、外号等称呼都代表这同一个人,所以要将它们统一成同一个实体)。
其具体实现方法是:
关系抽取:通常在实体抽取和实体链指之后进行,它对给定句子中两个实体之间的语义关系进行判断,属于多分类问题。常见关系抽取技术有三大类,它们分别是:
基于规则的方法依靠人工指定关系抽取规则,它首先定义待抽取关系的类型,然后定义所需抽取的实体种类,最后尽量全面地制定出符合待抽取关系的文本匹配规则(且所有匹配规则组成的集合,称为规则集合)。
该方法具有抽取结果准确且不需要任何训练数据的优点,也具有查全率低(low recall rate)、人工成本高、规则设计困难和可移植性差的不足,但瑕不掩瑜,基于规则的方法,仍是目前最主流、且见效速度最快的关系抽取方法。尤其是在手里几乎没有任何训练数据时,依赖人的经验进行关系抽取的该方法是必然的选择,等数据量逐渐积累后,可再慢慢替换成基于模型的方法。
其中,查全率低和规则设计困难是两种无法克服的系统固有特性。查全率低,是因为关系抽取规则全凭人工经验设定,而人的经验不可避免的具有局限性,所以人工能想象出的规则一定仅占全部匹配规则中的一小部分。规则设计困难,是为保证查全率而设计足够多条规则时,如何保证各规则间不冲突、不冗余,是十分困难的。
基于监督学习的关系抽取,本质上是一个分类问题,它的实现方法分为四步:1)定义带抽取关系类型;2)定义所需实体类型;3)准备训练数据(命名实体识别+关系标记);4)数据建模。这其中训练数据准备的成本极高,实际工作中很难为开发监督学习的关系抽取模型特意制作一份训练数据。
数据建模中,常用的特征工程方法有基于词袋模型的词向量特征、单词词性特征、命名实体识别特征、位置信息特征、句法结构特征和依存文法特征等。
对于正样本比例占总体少数且还分为多个类别的不均衡样本的多分类问题,从模型设计角度:可采用 Stacking 模型融合方法,组合使用一个二分类模型和一个多分类模型来缓解样本不均衡的影响(此外,还可从数据准备角度:正采样或负采样操作来缓解样本不均衡问题。)。其实现方法如下:
当有少量已标记数据和大量无标记数据时,可采用半监督学习方法来提升模型预测效果,比较经典的有Bootstrap和Distant Supervision方法。其中Distant Supervision(远程监督)方法借助已建立的知识图谱,来进行关系抽取。