前一句的命名实体识别影响
Named Entity Recognition influence of previous sentence
在命名实体识别(NER)中,前一句对当前句子有影响吗?如果将 NER 分别应用于每个句子与将 NER 应用于由多个句子组成的文章,结果是否相同?
更具体地说,我正在使用 Spacy NER。这是方法一:
import spacy
nlp = spacy.load('en')
sentences = "My name is Bruce and I come from New York. Pete is my best friend from Amsterdam."
nlp_object = nlp(sentences)
print([(y.text, y.label_) for y in nlp_object.ents])
产生这个结果:
[('Bruce', 'PERSON'), ('New York', 'GPE'), ('Pete', 'PERSON'), ('Amsterdam', 'GPE')]
但除了最后两行,您还可以拆分句子并对每个句子应用 NER:
for s in sentences.split("."):
nlp_object = nlp(s)
print([(y.text, y.label_) for y in nlp_object.ents])
其中 returns 相同的结果(但在两行中):
[('Bruce', 'PERSON'), ('New York', 'GPE')]
[('Pete', 'PERSON'), ('Amsterdam', 'GPE')]
在此示例中,运行 代码给出了相同的提取实体。但是底层模型是如何做到这一点的呢?上一句对NER有影响吗? NER的不同实现之间有什么区别吗?
Spacy NER 系统使用深度神经网络训练数百万个词实体对示例。如果您查看它们的样本训练代码 here.,这些对通常会作为单独的句子进行训练。
虽然我不知道 spacy 提供的预训练模型究竟是如何训练的,但我可以假设它们也是使用单句训练的。即使不是,前面的句子也不应该有任何影响,因为训练数据不是作为单词提供给深度学习系统的,而是作为矢量表示,从其他文本样本中学习的。查看 this article 以了解上下文词如何影响预测。
在命名实体识别(NER)中,前一句对当前句子有影响吗?如果将 NER 分别应用于每个句子与将 NER 应用于由多个句子组成的文章,结果是否相同?
更具体地说,我正在使用 Spacy NER。这是方法一:
import spacy
nlp = spacy.load('en')
sentences = "My name is Bruce and I come from New York. Pete is my best friend from Amsterdam."
nlp_object = nlp(sentences)
print([(y.text, y.label_) for y in nlp_object.ents])
产生这个结果:
[('Bruce', 'PERSON'), ('New York', 'GPE'), ('Pete', 'PERSON'), ('Amsterdam', 'GPE')]
但除了最后两行,您还可以拆分句子并对每个句子应用 NER:
for s in sentences.split("."):
nlp_object = nlp(s)
print([(y.text, y.label_) for y in nlp_object.ents])
其中 returns 相同的结果(但在两行中):
[('Bruce', 'PERSON'), ('New York', 'GPE')]
[('Pete', 'PERSON'), ('Amsterdam', 'GPE')]
在此示例中,运行 代码给出了相同的提取实体。但是底层模型是如何做到这一点的呢?上一句对NER有影响吗? NER的不同实现之间有什么区别吗?
Spacy NER 系统使用深度神经网络训练数百万个词实体对示例。如果您查看它们的样本训练代码 here.,这些对通常会作为单独的句子进行训练。
虽然我不知道 spacy 提供的预训练模型究竟是如何训练的,但我可以假设它们也是使用单句训练的。即使不是,前面的句子也不应该有任何影响,因为训练数据不是作为单词提供给深度学习系统的,而是作为矢量表示,从其他文本样本中学习的。查看 this article 以了解上下文词如何影响预测。