解析配置覆盖时出错 - `nlp.tokenizer` 部分不存在
Error parsing config overrides - `nlp.tokenizer` sections does not exist
我在 Spacy 中遇到了一个奇怪的问题,我不确定是我做错了什么还是一个真正的错误。
我使用 Spacy 项目并通过以下方式创建默认配置文件:
python -m spacy init config spacy.cfg
然后我尝试使用此配置加载 NLP 对象:
import spacy
config = spacy.util.load_config('./spacy.cfg')
nlp = spacy.load("en_core_web_sm", config=config)
执行此操作时出现以下错误:
ConfigValidationError:
Error parsing config overrides
nlp -> tokenizer -> @tokenizers not a section value that can be overwritten
通过 PDB 查看内部发生的情况,我注意到未创建部分 nlp.tokenizer
。相反,配置在 NLP 部分中存储了以下丑陋的项目:
'tokenizer': '{"@tokenizers":"spacy.Tokenizer.v1"}'
这看起来不太对劲。
我在 Ubuntu 20.04.2 LTS 上使用 Spacy v3.0.3。
分词器设置没有问题。 en_core_web_sm
已经包含它自己的配置,包括一个标记器,这是你不能覆盖的。
您想从空白管道而不是预训练管道开始加载您的配置:
nlp = spacy.blank("en", config=config)
请注意,此处的语言 en
需要与 spacy init config
语言设置相匹配,否则将无法加载配置。
我在 Spacy 中遇到了一个奇怪的问题,我不确定是我做错了什么还是一个真正的错误。
我使用 Spacy 项目并通过以下方式创建默认配置文件:
python -m spacy init config spacy.cfg
然后我尝试使用此配置加载 NLP 对象:
import spacy
config = spacy.util.load_config('./spacy.cfg')
nlp = spacy.load("en_core_web_sm", config=config)
执行此操作时出现以下错误:
ConfigValidationError:
Error parsing config overrides
nlp -> tokenizer -> @tokenizers not a section value that can be overwritten
通过 PDB 查看内部发生的情况,我注意到未创建部分 nlp.tokenizer
。相反,配置在 NLP 部分中存储了以下丑陋的项目:
'tokenizer': '{"@tokenizers":"spacy.Tokenizer.v1"}'
这看起来不太对劲。
我在 Ubuntu 20.04.2 LTS 上使用 Spacy v3.0.3。
分词器设置没有问题。 en_core_web_sm
已经包含它自己的配置,包括一个标记器,这是你不能覆盖的。
您想从空白管道而不是预训练管道开始加载您的配置:
nlp = spacy.blank("en", config=config)
请注意,此处的语言 en
需要与 spacy init config
语言设置相匹配,否则将无法加载配置。