在进行荷兰语命名实体识别任务时,我使用 EntityRuler 添加实体,以利用 spaCy。当我将该规则器添加到笔记本的管道中时:
nlp = spacy.load("nl_core_news_md")
ruler = nlp.add_pipe("entity_ruler", before="ner")
patterns = complete_dicts # This is a list of dictionaries, e.g. [{"label": "PERSON", "pattern": "Staf Aerts"}, {"label": "PERSON", "pattern": "Meyrem Almaci"}]
ruler.add_patterns(patterns)
NER pipeline 很好用。但是,当我将它保存到我的磁盘上,然后再次加载这个模型时,会出现一些问题。
nlp.from_disk("path/to_model")
模型错过了通过EntityRuler添加的实体。
我在文档中找不到为什么会发生这种情况的原因。如果有人能解释一下,我将不胜感激!谢谢。
spacy.from_disk
。在保存的模型目录中,应该有一个entity_ruler/patterns.jsonl
文件,你可以确认其中是否包含你的模式。 - polm23nlp.to_disk("path/to_model")
。加载时使用nlp.from_disk("path/to_model")
。保存操作实际上会创建一个包含所有步骤的文件夹,在entity_ruler
中有一个patterns.jsonl
文件。这些是正确的模式,所以我很困惑为什么这不起作用! - IneGto_disk
。很抱歉没有注意到from_disk
和load
的区别。 - polm23