Information-Extraction

NER作为序列标记

指定的标记同时捕获边界和类型。序列分类器(如MEMM/CRF或bi-LSTM)被训练为在文本中使用标记来标记标记,这些标记表示特定类型的命名实体的存在。

image-20200314145732575

IO encoding简单的为每个 token 标注,如果不是 NE 就标为 O(other),所以一共需要 C+1 个类别(label)。而IOB encoding需要 2C+1 个类别(label),因为它标了 NE boundary,B 代表 begining,NE 开始的位置,I 代表 continue,承接上一个 NE,如果连续出现两个 B,自然就表示上一个 B 已经结束了。

  • 提取特征并训练词性标记类型的MEMM或CRF序列模型

由于汉语的特殊性,除了词汇层面的特征外,汉字层面的特征也被充分地用来辅助提高NER的效果.

由于汉语分词和NER的密切联系,有研究发现分词结果可以有效地提高汉语NER的效果。

研究表明,在模型不变的情况下,全局信息和外部知识确实可以显著地提高识别的效果。维基百科知识是最常见且有效的外部知识,而在汉语NER中,知网作为一个汉语特有的词汇语义知识库,也被充分地应用在NER研究中。

关系抽取

关系抽取需要从文本中抽取两个或多个实体之间的语义关系,主要方法有下面几类:

  • 基于模板的方法(hand-written patterns)

    • 基于触发词/字符串
    • 基于依存句法
  • 监督学习(supervised machine learning)

    • 机器学习
    • 深度学习(Pipeline vs Joint Model)
  • 半监督/无监督学习(semi-supervised and unsupervised)

    • Bootstrapping
    • Distant supervision
    • Unsupervised learning from the web

监督学习去做关系提取的过程如下:首先特定的关系和命名实体已经选择了,训练集语料手动去标注关系和命名实体,接着就是注释的语料就是用来去训练分类器去标注没有见过的训练集。

最直接的方法有3步:

  • 第一步,找寻一对命名实体。通常在一句话中。
  • 第二步,二元分类器的作用是用来判断两个命名实体之间是否有关系
  • 第三步,分类器将用来去标记命名实体之间的关系

监督学习-深度学习

深度学习方法又分为两大类,pipeline 和 joint model

  • Pipeline
    把实体识别和关系分类作为两个完全独立的过程,不会相互影响,关系的识别依赖于实体识别的效果
  • Joint Model
    实体识别和关系分类的过程共同优化

深度学习用到的特征通常有:

  • Position embeddings
  • Word embeddings
  • Knowledge embeddings

模型通常有 CNN/RNN + attention,损失函数 ranking loss 要优于交叉熵。

远程监督:

Mintz提出一个假设,如果知识库中存在某个实体对的某种关系,那么所有包含此对实体的数据都表达这个关系。理论上,这让关系抽取的工作大大简化。但远程监督也有副作用,因为不用人为的标注,只能机械地依赖外部知识库,而外部知识库会将同一对实体的所有情况都会标注一种关系,其标签的准确度就会大大的降低。

EALO(Expressed-at-least-once)假设:如果知识库中存在某个实体对的某种关系,那么至少有一个提到此对实体的数据表达此种关系。

主流关系抽取模型几乎都在使用引入多示例学习远程监督方法,再结合深度学习,卷积神经网络(convolutional neural networks, CNN)肩负着主要任务。

多示例学习是一种监督学习模式.可以对具有某种特征的数据样本集合打标签,这样的样本集合称为袋(bag). 每个bag有标签,而每个bag中含有多个数据样本,每个样本即为一个示例(instance)。

-------------本文结束感谢您的阅读-------------

欢迎关注我的其它发布渠道