gpt4 book ai didi

python - Spacy 3.0 : TypeError: [E978] The Language. 更新方法的 nlp.update 问题采用示例对象列表,但得到:{}

转载 作者:行者123 更新时间:2023-12-05 02:44:38 24 4
gpt4 key购买 nike

对于 Spacy 3.0 版,nlp.update 似乎有一些变化。我对这个简单的代码完全感到困惑:

examples = TRAIN_DATA
random.shuffle(examples)
losses = {}

for batch in minibatch(examples, size=8):
nlp.update(batch, sgd=optimizer, drop=0.35, losses=losses)

当我执行 type(batch) 时,它表示批处理是列表类型。但是错误消息说它是一个元组。我也尝试将其转换为列表但没有成功。我做错了什么?

准确的错误是:


TypeError Traceback(最后一次调用) 在22小批量中的批处理为 23(示例,大小 = 8):---> 24 nlp.update(batch, sgd=优化器, drop=0.35, losses=losses)2526 print("Losses ({}/{})".format(epoch + 1, epochs), losses)

~/nlp_learn/statbot/.statbot/lib/python3.8/site-packages/spacy/language.py in update(self, examples, _, drop, sgd, losses, component_cfg, exclude)1090 如果 len(示例)== 0:1091回损-> 1092 validate_examples(示例,“Language.update”)1093 个示例 = _copy_examples(示例)1094 如果 sgd 为无:

~/nlp_learn/statbot/.statbot/lib/python3.8/site-packages/spacy/training/example.pyx in spacy.training.example.validate_examples()

TypeError: [E978] Language.update 方法接受了一个 Example 对象的列表,但是得到了:{ }

这里以TRAIN_DATA的第一行为例:('Auf Bauer Lehmanns Hof wird an beiden Pfingsttagen Brot im Backofen gebacken.',{'实体': [(10, 18, 'PER')]})

最佳答案

您需要将TRAIN_DATA 转换为Example 类型。可能最简单的方法是使用 Example.from_dict() 方法。

TRAIN_DATA = # your data
random.shuffle(TRAIN_DATA)
losses = {}
for batch in minibatch(TRAIN_DATA, size=8):
for text, annotations in batch:
doc = nlp.make_doc(text)
example = Example.from_dict(doc, annotations)
nlp.update([example], drop=0.35, sgd=optimizer, losses=losses)

关于python - Spacy 3.0 : TypeError: [E978] The Language. 更新方法的 nlp.update 问题采用示例对象列表,但得到:{<class 'tuple' >},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66342359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com