使用新实体训练 Spacy 模型后,训练好的 NER 模型保存在哪里
Where is the trained NER model saved after training the Spacy model with new Entities
我仍在学习 Python 和创建模型,我对使用 Spacy 的 NLP 还很陌生。我使用 https://spacy.io/usage/training#ner 来训练 Spacy 的现有模型 - en_core_web_sm.
我已经用我的领域特定实体训练了这个模型。
def main(model="en_core_web_sm", new_model_name="new_ner_model", output_dir='/content/drive/My Drive/Data/new_model', n_iter=100):
.
.
(code to train the model)
.
.
# save model to output directory
if output_dir is not None:
output_dir = Path(output_dir)
if not output_dir.exists():
output_dir.mkdir()
nlp.meta["name"] = new_model_name # rename model
nlp.to_disk(output_dir)
print("Saved model to", output_dir)
现在我假设我会在输出目录中找到一个模型文件。相反,我有 4 个子文件夹 - vocab、ner、tagger、parser。以及 2 个文件 meta.json 和 tokenizer。
ner 子文件夹有 cfg、moves、model.
根据上面提到的网站,要加载新模型,我需要使用整个文件夹(输出目录),即
nlp2 = spacy.load(output_dir)
是否需要整个目录(是模型)还是 ner 子文件夹中名为 model 的二进制文件?
一般来说,我们建议将整个模型保存为一个文件夹,以确保所有内容都以一致的方式加载回来。单独加载 model
文件是行不通的。它只包含神经网络的权重。需要一些其他文件来定义 NLP 管道及其不同组件的参数和设置。例如,你总是需要词汇数据等
您可以做的一件事是禁用您不感兴趣的组件。这将减小磁盘上的文件夹大小并删除您不需要的冗余文件夹。例如,如果你只对 NER 感兴趣,你可以这样做:
nlp = spacy.load("en_core_web_sm", disable=["parser", "tagger"])`
或者,如果您加载了整个模型,您可以只将其中的一部分存储到磁盘:
nlp.to_disk(output_dir, exclude=["parser", "tagger"])
我仍在学习 Python 和创建模型,我对使用 Spacy 的 NLP 还很陌生。我使用 https://spacy.io/usage/training#ner 来训练 Spacy 的现有模型 - en_core_web_sm.
我已经用我的领域特定实体训练了这个模型。
def main(model="en_core_web_sm", new_model_name="new_ner_model", output_dir='/content/drive/My Drive/Data/new_model', n_iter=100):
.
.
(code to train the model)
.
.
# save model to output directory
if output_dir is not None:
output_dir = Path(output_dir)
if not output_dir.exists():
output_dir.mkdir()
nlp.meta["name"] = new_model_name # rename model
nlp.to_disk(output_dir)
print("Saved model to", output_dir)
现在我假设我会在输出目录中找到一个模型文件。相反,我有 4 个子文件夹 - vocab、ner、tagger、parser。以及 2 个文件 meta.json 和 tokenizer。 ner 子文件夹有 cfg、moves、model.
根据上面提到的网站,要加载新模型,我需要使用整个文件夹(输出目录),即
nlp2 = spacy.load(output_dir)
是否需要整个目录(是模型)还是 ner 子文件夹中名为 model 的二进制文件?
一般来说,我们建议将整个模型保存为一个文件夹,以确保所有内容都以一致的方式加载回来。单独加载 model
文件是行不通的。它只包含神经网络的权重。需要一些其他文件来定义 NLP 管道及其不同组件的参数和设置。例如,你总是需要词汇数据等
您可以做的一件事是禁用您不感兴趣的组件。这将减小磁盘上的文件夹大小并删除您不需要的冗余文件夹。例如,如果你只对 NER 感兴趣,你可以这样做:
nlp = spacy.load("en_core_web_sm", disable=["parser", "tagger"])`
或者,如果您加载了整个模型,您可以只将其中的一部分存储到磁盘:
nlp.to_disk(output_dir, exclude=["parser", "tagger"])