📅  最后修改于: 2023-12-03 14:47:31.395000             🧑  作者: Mango
Spacy 是一个用于自然语言处理的 Python 库。它提供了许多 NLP 功能,例如分词、句法分析、实体识别等。为了完成这些任务,Spacy 库包含多个预训练的模型,每个模型都存储在本地磁盘上,以便快速访问。
Spacy 模型通常存储在 ~/.spacy
目录中,该目录是用户主目录下的一个隐藏文件夹。例如,在 Linux 或 macOS 上,完整的路径可能是 ~/\.spacy\models
。在 Windows 上,完整的路径可能是 C:\Users\<User>\AppData\Roaming\spacy\models
。
每个模型都存储在以模型名称命名的子文件夹中,其中包含一个名为 meta.json
的元数据文件,以及一个名为 model
的二进制文件。以下是一个示例模型的路径:
~/.spacy/models/en_core_web_sm
可以使用以下命令获取 Spacy 模型的存储位置:
import spacy
print(spacy.util.get_data_path())
这将返回 Spacy 模型的默认存储位置(例如 ~/.spacy
)。
为了在本地存储和加载 Spacy 模型,可以使用 spacy.load()
方法。例如,要将 en_core_web_sm
模型保存到本地磁盘上的 models
文件夹中,可以执行以下操作:
import spacy
# 加载 en_core_web_sm 模型
nlp = spacy.load("en_core_web_sm")
# 保存模型到本地
nlp.to_disk('models/en_core_web_sm')
模型现在已经存储在 models/en_core_web_sm
目录中,准备就绪用于后续使用。
要从本地加载已保存的 Spacy 模型,可以使用 spacy.load()
方法。例如,要从 models/en_core_web_sm
目录加载模型,可以执行以下操作:
import spacy
# 从本地加载模型
nlp = spacy.load('models/en_core_web_sm')
# 对文本进行 NLP 处理
doc = nlp('This is an example sentence.')
# 输出实体
for ent in doc.ents:
print(ent.text, ent.label_)
此操作将输出以下内容:
an example sentence DATE
这证明模型已成功加载,并且可以用于执行各种 NLP 任务。
Spacy 模型存储在用户主目录下的 ~/.spacy
目录中。要将模型保存到本地磁盘,请使用 nlp.to_disk()
方法,并指定要将模型存储到哪个文件夹中。要从已保存的模型加载,请使用 spacy.load()
方法,并指定已保存的模型的路径。