如何从本地加载spaCy语言模型供torchtext的get_tokenizer使用
解决方案
方法1:传入已加载的模型对象(最便捷,推荐)
你已经成功安装en_core_web_md可直接导入,直接将加载后的spaCy模型对象传入get_tokenizer的language参数即可,示例代码如下:
from torchtext.data.utils import get_tokenizer import en_core_web_md # 加载本地已安装的模型 nlp = en_core_web_md.load() # 直接传入模型对象构造tokenizer my_language = get_tokenizer('spacy', language=nlp)
可通过如下代码验证功能正常:
print(my_language("This is a test sentence.")) # 预期输出:['This', 'is', 'a', 'test', 'sentence', '.']
方法2:传入模型本地路径
如果你需要通过路径加载模型,首先找到pip安装后en_core_web_md的实际存放路径(该路径下存在config.cfg文件),获取路径的代码如下:
import en_core_web_md print(en_core_web_md.__path__[0])
将打印出的路径传入language参数即可:
from torchtext.data.utils import get_tokenizer # 替换为上一步输出的实际路径 model_path = "/your/path/to/en_core_web_md" my_language = get_tokenizer('spacy', language=model_path)
报错原因说明
你之前解压en_core_web_md-3.1.0.tar.gz得到的是PyPI发布的源码安装包,内部包含的是打包配置和未解压的模型资源,不是spaCy运行时可直接读取的目录结构,因此找不到config.cfg文件。pip安装过程会自动将模型解压为符合要求的目录结构,因此使用安装后的路径/加载后的模型即可正常运行。
内容的提问来源于stack exchange,提问作者Droid-Bird
相关产品推荐
相关产品推荐

