spaCy 3.4.3中集成pysbd作为管道组件报错的求助
解决spaCy 3.x中添加pysbd管道的错误问题
问题原因
你遇到的错误源于spaCy 3.x版本的API变更:nlp.add_pipe()不再支持直接传入组件实例,必须传入已注册的组件工厂名称字符串,而原代码直接传入了PySBDFactory(nlp)实例,不符合新版本的调用规范。
修正后的代码
直接使用pysbd预注册的组件名称'pysbd'添加管道即可,无需手动实例化PySBDFactory:
import spacy nlp = spacy.blank('en') # 通过注册的组件名称添加pysbd管道 nlp.add_pipe('pysbd') doc = nlp('My name is Jonas E. Smith. Please turn to p. 55.') print(list(doc.sents))
运行后将得到预期输出:
[My name is Jonas E. Smith., Please turn to p. 55.]
自定义配置(可选)
如果需要调整pysbd的分割规则或参数,可以通过add_pipe的config参数传入自定义配置:
# 示例:禁用文本清理、保留字符跨度信息 nlp.add_pipe('pysbd', config={'clean': False, 'char_span': True})
内容的提问来源于stack exchange,提问作者Simply Jeff
相关产品推荐
相关产品推荐

