Spacy NER 无法识别 NAME
Spacy NER not recognising NAME
谁能帮我理解为什么 Spacy NER 拒绝识别句子中的最后一个 NAME 'Hagrid',无论使用的模型是什么(sm、md、lg)?:
“赫敏买了一辆车,然后赫敏和海格都在赛道上比赛。汤姆布拉迪今年对海格非常满意。”
import spacy
nlp = spacy.load('en_core_web_md')
test_data = "Hermione bought a car, then both Hermione and Hagrid raced it on the track. Tom Brady was very happy with Hagrid this year."
doc = nlp(test_data)
for ent in doc.ents:
print(ent.text, ent.start_char, ent.end_char, ent.label_)
嗯,神经网络模型基本上是一个黑盒子,所以无法确定。
我可以想象最后一句话的语法有点太“花哨”/literature-like 如果模型是在新闻或网络数据上训练的,并且可能会抛出模型。难以将句子上下文视为后面跟着名字的东西,以及“海格”是一种不寻常的名字这一事实可能是原因。
您可以尝试一些其他模型,例如集成在 Flair 中的模型:
或这个 fine-tuned BERT 模型:
根据我的经验,SpaCy 是一个不错的工具,而且速度非常快,但它们功能更强大并且做对了,但对于 NER 来说并不是最精确的。
谁能帮我理解为什么 Spacy NER 拒绝识别句子中的最后一个 NAME 'Hagrid',无论使用的模型是什么(sm、md、lg)?:
“赫敏买了一辆车,然后赫敏和海格都在赛道上比赛。汤姆布拉迪今年对海格非常满意。”
import spacy
nlp = spacy.load('en_core_web_md')
test_data = "Hermione bought a car, then both Hermione and Hagrid raced it on the track. Tom Brady was very happy with Hagrid this year."
doc = nlp(test_data)
for ent in doc.ents:
print(ent.text, ent.start_char, ent.end_char, ent.label_)
嗯,神经网络模型基本上是一个黑盒子,所以无法确定。
我可以想象最后一句话的语法有点太“花哨”/literature-like 如果模型是在新闻或网络数据上训练的,并且可能会抛出模型。难以将句子上下文视为后面跟着名字的东西,以及“海格”是一种不寻常的名字这一事实可能是原因。
您可以尝试一些其他模型,例如集成在 Flair 中的模型:
或这个 fine-tuned BERT 模型:
根据我的经验,SpaCy 是一个不错的工具,而且速度非常快,但它们功能更强大并且做对了,但对于 NER 来说并不是最精确的。