python 用于NER概率空间3波束解析

laik7k3q  于 2023-01-24  发布在  Python
关注(0)|答案(2)|浏览(107)

我在试着恢复我的空间模型给一个实体分配正确标签的概率。我有空间版本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中做到这一点,因为我似乎在文档中找不到任何东西?

yr9zkbsy

yr9zkbsy1#

这种获取NER概率的变通方法在v3中不起作用,因为API已经更改,目前没有推荐的替代方法。
我们正在开发一个SpanCategorizer,它将允许您获得带有置信度分数的NER标签。

zzwlnbp8

zzwlnbp82#

使用nlp.get_pipe('ner')而不是nlp.entity来获取NER组件。(SpaCy 3.4.4)

相关问题