NLP——Information Extraction信息提取


在这里插入图片描述 在这里插入图片描述

Information Extraction 步骤

在这里插入图片描述

  • Named Entity Recognition (NER): 命名实体识别
  • Relation Extraction: 关系提取
    在这里插入图片描述

Named Entity Recognition (NER)

在这里插入图片描述
在这里插入图片描述

Typical Entity Tags 典型实体标签

在这里插入图片描述

  • 命名实体识别中可能遇到歧义的问题(这种问题在 POS tagging 里面也很普遍):
    在这里插入图片描述
  • 为了消除歧义,我们需要结合上下文。
    在这里插入图片描述
  • 虽然在 POS 中我们可以使用 HMM,但是在 NER 任务中却不适合这么做:

隐马尔可夫模型(Hidden Markov Models, HMM)是一种可以用来处理序列数据的模型,它在一些NLP任务中表现得非常好,比如词性标注。然而,HMM有一些局限性,使得它在处理命名实体识别中的歧义问题时可能不会表现得很好。原因如下:

  • 一阶马尔可夫性质:HMM假设序列中的每个状态(在NER任务中,这些状态可能是实体标签)仅依赖于前一个状态。这意味着HMM不能直接捕获超过一步的上下文信息。然而,实际上,一个词的实体类型可能依赖于更广的上下文。 例如,“苹果”在“我喜欢吃Apple”和“我喜欢使用Apple产品”这两个句子中具有不同的实体类型,但是这个信息无法通过仅看前一个词的HMM捕获。

  • 无法处理复杂的特征:HMM通常使用比较简单的特征,例如前一个词或前一个标签。然而,NER任务可能需要复杂的特征,例如词的词性,词的位置,以及词在句子中的其他词的关系等。这些特征无法直接在HMM中使用。

  • 独立输出假设:HMM假设给定隐藏状态序列,观测状态(在NER任务中,这些可能是词)是独立的。这意味着它不能直接模拟词与词之间的依赖关系。然而,在实际文本中,词与词之间往往有强烈的依赖关系。

IO tagging

  • 我们可以使用 IO tagging 来解决上述的问题

在命名实体识别(Named Entity Recognition,NER)中,IO标注(IO Tagging)是一种常见的标注策略。在这种策略中,只有两种标签:I(Inside)和O(Outside)。 以下是它们的含义:

  • “I”:表示该词是某个命名实体的一部分。
  • “O”:表示该词不是任何命名实体的一部分。
    比如在句子 “Apple is based in California” 中,如果我们的目标是识别组织名(ORG)和地名(GPE), 那么可能的IO标注就是 “I-ORG O O O I-GPE”。
    在这里插入图片描述
  • 但是 IO Tagging 的缺点就是:
    在这里插入图片描述
  • 这是因为 IO标注 无法标识一个实体的开始和结束。
  • 举个例子,考虑这个句子:“Apple and Microsoft are tech companies.” 如果我们使用IO标注,那么“Apple and Microsoft”就会被标注为“I I I”,这样就无法确定“Apple”、“and”、“Microsoft”是一个实体还是三个实体。
  • 同样,对于一个包含多个词的单一实体,如“San Francisco”,IO标注也会给出“I I”的标注,与上面的情况看起来是一样的,无法区分它们是一个实体还是两个实体。

IOB tagging

在这里插入图片描述
IOB(或BIO)标注(IOB Tagging)是一种常见的标注策略。在这种策略中,有三种标签:B(Begin),I(Inside),O(Outside)。以下是它们的含义:

  • “B”: 表示该词是某个命名实体的开始。
  • “I”: 表示该词是某个命名实体的一部分,但不是开始。
  • “O”: 表示该词不是任何命名实体的一部分。
    例如,在句子 “Apple is based in California” 中,如果我们的目标是识别组织名(ORG)和地名(GPE),那么可能的IOB标注就是 “B-ORG O O O B-GPE”。

相比IO标注策略,IOB标注策略可以更好地处理相邻的并且类型相同的命名实体。例如,在句子 “Apple and Google are tech companies” 中,“Apple” 和 “Google” 可以被分别标注为 “B-ORG” 和 “B-ORG”,从而区分为两个不同的实体。

  • 也就是说,如果有两个相邻的实体名,而且这两个实体名如果是属于同一个实体比如 san francisco 那么其中的 san 会被标注为 B-ORGfrancisco 则会被标注为 I-ORG 这样来表示这两个属于同一个实体,而如果是两个不相关的实体,比如 Microsoft Apple 就会被标注为 B-ORGB-ORG 表示两个不同的实体
Steve Jobs founded Apple Inc. in 1976

Steve - B-PER
Jobs - I-PER
founded - O
Apple - B-ORG
Inc. - I-ORG
in - O
1976 - B-TIME

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

神经网络做 NER

在这里插入图片描述

神经网络在命名实体识别(NER)任务中的应用已经取得了显著的成功。以下是一种常见的使用神经网络进行NER的方法:

  • 预处理:将输入文本分割成单词或令牌(tokens)。可能需要做一些其他的预处理步骤,如小写化或词干化。

  • 词嵌入:将每个单词转换为一个密集向量,这个向量可以捕获单词的语义信息。这可以通过使用预训练的词嵌入模型(如Word2Vec或GloVe)来完成。 预训练的模型已经在大量的文本上进行了训练,可以捕获到丰富的词汇知识。

  • 序列编码:使用一种可以处理序列数据的神经网络模型,如循环神经网络(RNN)、长短期记忆(LSTM)或门控循环单元(GRU)等来处理词嵌入序列。这种模型可以捕获单词之间的顺序关系。

  • 解码:对于每个单词,基于其上下文编码来预测其标签。这通常通过在序列编码的顶部添加一个全连接层和一个softmax函数来实现。 每个标签都会有一个softmax分数,表示该单词属于每个可能的实体类别的概率。

Relation Extraction

关系抽取(Relation Extraction)是自然语言处理(NLP)中的一个关键任务,其目标是从文本中识别并抽取出实体之间的预定义关系。 例如,在句子 “Barack Obama was born in Hawaii.” 中,我们可以抽取出关系 (“Barack Obama”, “born in”, “Hawaii”)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Rule-based

在这里插入图片描述

Supervised Relation Extraction

在这里插入图片描述
在这里插入图片描述

  • 这个例子中,由于我们已经通过 NER 确定出了所有的 entity,现在的任务是,将这些 entity 组合之后进行二分类,判断他们之间是不是有 relation
  • positive 代表有关系,negative 代表没有
  • 对于有关系的,我们再对关系进行分类
    在这里插入图片描述
    在这里插入图片描述

Semi-supervised

在这里插入图片描述

  • 进行 supervised learning 需要的数据集需要大量标注,但是标注非常昂贵,因此可以使用半监督的方式,进行模型训练
    在这里插入图片描述

它主要用于克服监督式关系抽取需要大量标注数据的问题。半监督关系抽取方法使用一小部分标注数据和大量未标注数据来进行训练。

一种常见的半监督关系抽取方法是自举(Bootstrapping)。自举方法一开始使用一小部分标注数据(种子实例)进行训练,然后使用训练好的模型去预测未标注数据中的关系。这些预测被认为是正确的,并添加到训练集中。然后,模型使用更新后的训练集进行再训练。这个过程反复进行,直到模型收敛或者达到预设的迭代次数。

例如,假设我们有一个种子实例 “Barack Obama was born in Hawaii”,我们可以首先训练一个模型来识别 "was born in" 这种关系。然后,我们使用这个模型去预测其他句子中的关系,如果模型预测 “Steve Jobs was born in San Francisco” 中存在 "was born in" 这种关系,那么我们就把这个实例添加到训练集中,然后进行再训练。

Semantic Drift 语义漂移

语义漂移(Semantic Drift)是一种在半监督学习中常见的问题,特别是在自举(Bootstrapping)过程中。这是因为在自举过程中,模型在每次迭代中都会通过将预测的实例添加到训练集中来更新它的训练数据。

语义漂移指的是当模型开始从初始种子实例中学习一种关系,然后逐渐开始学习到与初始关系不同的其他关系的情况。 这通常是由于模型预测错误导致的,即模型错误地认为一个实例表示了目标关系,并将其添加到训练集中,从而改变了训练数据的分布。

举个例子,假设我们在进行关系抽取的任务中,目标是找出 "was born in" 的关系。我们初始的种子实例可能是 “Steve Jobs was born in San Francisco”。然而,如果模型在某一次迭代中错误地将 “Apple was founded in Cupertino” 识别为 "was born in" 的关系并将其加入到训练集中,那么模型可能开始学习到 "founded in" 这种关系,这就产生了语义漂移。

在这里插入图片描述

Distant supervision 远程监督

在这里插入图片描述
远程监督(Distant Supervision)是一种用于关系抽取的弱监督学习方法。远程监督的核心思想是,如果两个实体在知识库(例如Freebase, Wikidata等)中存在某种关系,那么所有包含这两个实体的句子都可以被视为这种关系的实例。

例如,如果我们知道在知识库中,“Barack Obama” 和 “Hawaii” 之间有一个 “出生地” 的关系,那么任何提到 “Barack Obama” 和 “Hawaii” 的句子,如 “Barack Obama was born in Hawaii” 或者 “Hawaii is the birthplace of Barack Obama”,都可以被视为 “出生地” 关系的实例。

使用远程监督方法,我们可以从未标注的文本和知识库中自动构建大规模的关系抽取训练集。然而,远程监督方法也有一个显著的问题,即错误标注问题(也被称为远程监督假设的不足)。 因为并非所有包含两个有关系实体的句子都表示这种关系,这可能导致许多错误标注的实例。例如,句子 “Barack Obama went on vacation in Hawaii” 并不表示 “出生地” 的关系,但是在远程监督的假设下,它可能被错误地标注为一个 "was born in" 关系的实例。

Unsupervised Relation Extraction (“OpenlE”)

在这里插入图片描述

无监督的关系抽取(Unsupervised Relation Extraction),例如OpenIE (Open Information Extraction),是一种不依赖标记数据,直接从未标记的文本中抽取实体关系的方法。

OpenIE旨在从文本中抽取一种形式的 (subject, relation, object) 三元组。这种方法的优点是它可以抽取任意种类的关系,而不仅仅是预先定义好的关系类型。然而,这也意味着它可能抽取出大量不太有用的或者噪音较大的关系。

OpenIE的工作流程通常包括以下几个步骤:

  • 句子分割和词语标注:首先,将文本分割成句子,并进行词性标注和命名实体识别。

  • 句法解析:接着,对每个句子进行句法解析,通常是依存句法解析。

  • 关系抽取:然后,根据句法解析的结果抽取出 (subject, relation, object) 三元组。通常,subject 和 object 是句子中的命名实体,relation 是它们之间的动词短语。

  • 三元组筛选:最后,可以通过一些启发式规则或者基于学习的方法来筛选或者评分三元组,以提高结果的质量。

值得注意的是,OpenIE方法通常需要大量的计算资源,因为它需要处理大量的句子和句法解析树。此外,由于它的无监督性质,所以它的结果可能包含大量的噪音,需要后续的处理来提高可用性。

Evaluation

在这里插入图片描述

  • 对于命名实体识别(NER)和关系抽取任务,常用的评估方法包括精确度(Precision)、召回率(Recall)和 F1 分数(F1-Score)。

  • 这些指标都是基于真正例(True Positives,TP)、假正例(False Positives,FP)和假反例(False Negatives,FN)的概念来定义的。

  • 对于关系抽取任务,评估时需要考虑实体对和它们的关系都正确才算预测正确。例如,如果一个关系是 (“Barack Obama”, “born in”, “Hawaii”),但模型预测的是 (“Barack Obama”, “live in”, “Hawaii”),那么这被视为一个错误的预测。

Other Information Extraction 任务

Temporal Expression Extraction

在这里插入图片描述

Event Extraction

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
嗨!对于BERT情感分类实战,您可以按照以下步骤进行: 1. 数据准备: - 收集和整理情感分类的训练数据集,一般包含文本和对应的情感类别(如正面、负面、中性等)。 - 划分数据集为训练集和测试集,确保数据集的均衡性和随机性。 2. BERT模型介绍: - BERT(Bidirectional Encoder Representations from Transformers)是一种预训练的自然语言处理模型,通过双向Transformer编码器学习语义表示。 - 可以选择使用基于TensorFlow或PyTorch实现的BERT模型,或者直接使用已经训练好的BERT模型进行微调。 3. 模型微调: - 使用训练集对BERT模型进行微调,即在预训练的BERT模型基础上,通过训练集进行进一步的学习。 - 这里的微调过程包括输入数据的预处理、构建分类任务的模型结构、定义损失函数和优化算法等。 4. 模型评估: - 使用测试集对训练好的BERT模型进行评估,计算分类准确率、精确率、召回率等指标,评估模型在情感分类任务上的性能。 5. 预测与应用: - 使用训练好的BERT模型对新的文本进行情感分类预测,得到情感类别的预测结果。 - 可以将该模型应用于各种情感分析任务,如舆情监测、评论情感分析等。 以上是BERT情感分类实战的一般流程,您可以根据具体需求和数据特点进行相应调整和优化。希望能对您有所帮助!如有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值