求助:在Google Colab使用UCREL USAS语义标注器遇参数错误
在Google Colab中使用USAS语义标注器时遇到的TypeError问题
问题背景
按照USAS语义标注器的官方指引,在Google Colab中执行以下安装操作:
pip install https://github.com/UCREL/pymusas-models/releases/download/en_dual_none_contextual-0.3.1/en_dual_none_contextual-0.3.1-py3-none-any.whl python -m spacy download en_core_web_sm import spacy
安装完成后运行标注代码:
# 排除不需要的组件 nlp = spacy.load('en_core_web_sm', exclude=['parser', 'ner']) # 加载英文PyMUSAS规则标注器到独立spaCy管道 english_tagger_pipeline = spacy.load('en_dual_none_contextual') # 将标注器添加到主spaCy管道 nlp.add_pipe('pymusas_rule_based_tagger', source=english_tagger_pipeline)
执行第二行spacy.load('en_dual_none_contextual')时触发错误:
TypeError: load_model_from_init_py() got an unexpected keyword argument 'enable'
注意:相同代码在本地机器运行正常,仅在Google Colab中出现该问题。
解决方案
该问题源于Google Colab预装的spaCy版本与PyMUSAS模型依赖的版本不兼容,按以下步骤修复:
- 卸载当前spaCy版本:
pip uninstall -y spacy
- 安装与
en_dual_none_contextual-0.3.1兼容的spaCy版本(测试验证spaCy 3.4.4可正常适配):
pip install spacy==3.4.4
- 重新下载
en_core_web_sm模型:
python -m spacy download en_core_web_sm
- 再次运行原标注代码即可正常执行。
原因说明
en_dual_none_contextual-0.3.1模型依赖特定版本的spaCy,而Google Colab默认安装的spaCy版本较新,新增了enable参数,但旧版本模型的加载逻辑不支持该参数,从而触发类型错误。本地机器的spaCy版本刚好与模型兼容,因此无报错。
内容的提问来源于stack exchange,提问作者Vahid the Great
相关产品推荐
相关产品推荐

