【问题标题】:Confidence Score of Predicted NER entities using Spacy使用 Spacy 预测的 NER 实体的置信度得分
【发布时间】:2021-10-23 09:42:51
【问题描述】:

我正在尝试使用 spacy 的自定义训练 NER 模型来预测实体。我读到https://github.com/explosion/spaCy/pull/8855 可以使用 spancat 获得每个实体的置信度分数。但是我对使这项工作有些困惑。据我了解,我们必须使用 spancat 组件来训练管道。所以在训练时,在配置文件中有一个段,

[nlp]
lang = "en"
pipeline = ["tok2vec","ner"]
batch_size = 1000

我们是否必须将其更改为

[nlp]
lang = "en"
pipeline = ["tok2vec","ner","spancat"]
batch_size = 1000

让 spancat 工作。

那么经过训练,在从未知文本中预测实体的同时,我们是否必须使用

doc = nlp(data_to_be_predicted)
spans = doc.spans["spancat"] # SpanGroup
print(spans.attrs["scores"]) # list of numbers, span length as SpanGroup

获取置信度分数。

我正在使用 spacy 3.1.3。我相信根据文档,这个功能现在已经推出了。

【问题讨论】:

标签: python nlp spacy named-entity-recognition


【解决方案1】:

我不太确定您的帖子中是否存在问题,但是是的,spancat 可用,您可以从中获取实体分数。

spancat 是与 ner 组件不同的组件。所以如果你这样做:

pipeline = ["tok2vec","ner","spancat"]

spancat 不会为您的 ner 组件预测的事情添加分数。您可能想删除 ner 组件。


关于使用,请看the docsthe example project。这就是你获得分数的方式:

doc = nlp(text)
span_group = doc.spans["spans"] # default key, can be changed
scores = span_group.attrs["scores"]

# Note that `scores` is an array with one score for each span in the group
for span, score in zip(span_group, scores):
    print(score, span)

【讨论】:

  • 是否有任何使用示例可用于了解如何获得它。我对此有点困惑。是否有可能得到像“ADAM”---> PERSON ---> 0.92
  • 编辑答案以包含示例。
猜你喜欢
  • 2021-06-03
  • 2020-02-06
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 2021-05-08
  • 1970-01-01
  • 1970-01-01
  • 2020-05-06
相关资源
最近更新 更多