在用spacy编写ner模型时,在向ner模型中添加管道的时候,总是报错,哪位知道为啥啊
nlp=spacy.blank('en')
ner=nlp.create_pipe('ner')
nlp.add_pipe(ner, last=True
```python
you created your component with `nlp.create_pipe('name')`: remove nlp.create_pipe and call `nlp.add_pipe('name')` instead.
- If you passed in a component like `TextCategorizer()`: call `nlp.add_pipe` with the string name instead, e.g. `nlp.add_pipe('textcat')`.
- If you're using a custom component: Add the decorator `@Language.component` (for function components) or `@Language.factory` (for class components / factories) to your custom component and assign it a name, e.g. `@Language.component('your_name')`. You can then run `nlp.add_pipe('your_name')` to add it to the pipeline.
该回答引用NewBing
你好,这是Bing。我可以帮你解决这个问题。😊
根据搜索结果¹²³,在spacy v3中,添加管道的方式发生了变化。组件必须被注册,并且可以通过它们的名字添加到一个管道中。你可能需要使用@Language.component
或者@Language.factory
装饰器来注册你的自定义组件,并给它一个名字,例如@Language.component('your_name')
。然后你可以运行nlp.add_pipe('your_name')
来把它添加到管道中。
如果你想要把一个已经训练好的NER模型添加到另一个模型的管道中,你还需要提供第一个模型的vocab对象给spacy.load()函数,例如:
nlp = spacy.load("en_core_web_sm", exclude=["ner"])
nlp_entity = spacy.load("custom_ner_model")
nlp.add_pipe("ner", source=nlp_entity)
希望这些信息对你有帮助。
源: 与必应的对话, 2023/3/21
(1) python - Add custom NER model to spaCy pipeline - Stack Overflow. https://stackoverflow.com/questions/65751120/add-custom-ner-model-to-spacy-pipeline 访问时间 2023/3/21.
(2) python - How do I fix ValueError when doing nlp.add_pipe .... https://stackoverflow.com/questions/66433496/how-do-i-fix-valueerror-when-doing-nlp-add-pipelanguagedetector-name-langua 访问时间 2023/3/21.
(3) Language Processing Pipelines · spaCy Usage Documentation. https://spacy.io/usage/processing-pipelines/ 访问时间 2023/3/21.