用于 NER 概率的 spaCy 3 波束解析
spaCy 3 beam parse for NER probability
我正在尝试检索我的 spaCy 模型为实体分配正确标签的概率。我有 spaCy 版本 3.0.5.
threshold = 0.5
for i in testing_raw:
doc = nlp_updated(i)
beams = nlp_updated.beam_parse([ doc ], beam_width = 16, beam_density = 0.0001)
entity_scores = defaultdict(float)
for beam in beams:
for score, ents in nlp_updated.entity.moves.get_beam_parses(beam):
for start, end, label in ents:
entity_scores[(start, end, label)] += score
for key in entity_scores:
start, end, label = key
score = entity_scores[key]
if ( score > threshold):
print ('Label: {}, Text: {}, Score: {}'.format(label, doc[start:end], score))
以下行引发此错误:
beams = nlp_updated.beam_parse([ doc ], beam_width = 16, beam_density = 0.0001)
AttributeError: 'English' object has no attribute 'beam_parse'
这是因为 spaCy 版本 3 没有考虑 beam_parse
吗?如果是这样,我怎么能在这个版本的 spaCy 中执行此操作,因为我似乎在文档中找不到任何内容?
这种获取 NER 概率的解决方法在 v3 中不起作用,因为 API 已经更改,目前没有推荐的替代品。
正在开发 SpanCategorizer,它将允许您获得具有置信度分数的 NER 标签。
我正在尝试检索我的 spaCy 模型为实体分配正确标签的概率。我有 spaCy 版本 3.0.5.
threshold = 0.5
for i in testing_raw:
doc = nlp_updated(i)
beams = nlp_updated.beam_parse([ doc ], beam_width = 16, beam_density = 0.0001)
entity_scores = defaultdict(float)
for beam in beams:
for score, ents in nlp_updated.entity.moves.get_beam_parses(beam):
for start, end, label in ents:
entity_scores[(start, end, label)] += score
for key in entity_scores:
start, end, label = key
score = entity_scores[key]
if ( score > threshold):
print ('Label: {}, Text: {}, Score: {}'.format(label, doc[start:end], score))
以下行引发此错误:
beams = nlp_updated.beam_parse([ doc ], beam_width = 16, beam_density = 0.0001)
AttributeError: 'English' object has no attribute 'beam_parse'
这是因为 spaCy 版本 3 没有考虑 beam_parse
吗?如果是这样,我怎么能在这个版本的 spaCy 中执行此操作,因为我似乎在文档中找不到任何内容?
这种获取 NER 概率的解决方法在 v3 中不起作用,因为 API 已经更改,目前没有推荐的替代品。
正在开发 SpanCategorizer,它将允许您获得具有置信度分数的 NER 标签。