You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新版本Spacy-PyTextRank使用方法及'textrank'工厂找不到报错解决

解决PyTextRank添加管道时的[E002]工厂找不到问题
  • 修正代码笔误:你的代码中lp.add_pipe应为nlp.add_pipe,先修正这个基础错误。

  • 显式添加TextRank管道:
    由于spaCy 3.x的组件注册机制,直接用字符串"textrank"可能无法识别,尝试显式调用PyTextRank的组件类:

    import pytextrank
    import spacy
    
    nlp = spacy.load('en_core_web_trf')
    tr = pytextrank.TextRank()
    nlp.add_pipe(tr.PipelineComponent, name="textrank", last=True)
    
  • 确认版本兼容性:
    PyTextRank 3.3.0官方兼容spaCy 3.0~3.6版本,而你使用的spaCy是3.7.3,版本不匹配可能导致注册失败。可采取两种方案:

    • 降级spaCy到3.6.x:pip install spacy==3.6.0,同时下载对应版本的模型:python -m spacy download en_core_web_trf-3.6.0
    • 升级PyTextRank到最新稳定版:pip install --upgrade pytextrank,新版本通常会适配更高版本的spaCy
  • 检查环境包一致性:
    在WSL Ubuntu环境下,确保PyTextRank和spaCy安装在同一Python环境中,运行以下命令验证路径是否一致:

    pip show pytextrank
    pip show spacy
    
  • 绕过管道直接使用PyTextRank:
    如果管道添加始终有问题,可直接用PyTextRank API处理spaCy文档:

    import pytextrank
    import spacy
    
    nlp = spacy.load('en_core_web_trf')
    text = "待提取关键词的目标文本"
    doc = nlp(text)
    
    tr = pytextrank.TextRank()
    doc = tr(doc)
    
    # 提取前10个关键词及权重
    for phrase in doc._.phrases[:10]:
        print(f"关键词:{phrase.text},权重:{phrase.rank:.4f}")
    

内容的提问来源于stack exchange,提问作者Alvaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 05:22:36