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

已安装transformers仍提示Presidio Transformers引擎不可用求助

Presidio Transformers引擎配置报错解决

问题

在Mac系统的VS Code虚拟环境Jupyter Notebook中运行Presidio的Transformers引擎示例代码时,已安装transformers包且导入无报错,但使用config.yaml配置文件时触发「NLP engine 'transformers' is not available」错误,移除配置文件则代码可正常运行。

运行代码

from presidio_analyzer import AnalyzerEngine, RecognizerRegistry
from presidio_analyzer.nlp_engine import NlpEngineProvider

conf_file = 'config.yaml'

provider = NlpEngineProvider(conf_file=conf_file)
nlp_engine = provider.create_engine()

analyzer = AnalyzerEngine(
    nlp_engine=nlp_engine, 
    supported_languages=["en"]
)

results_english = analyzer.analyze(text="My name is Morris", language="en")
print(results_english)

错误信息

ValueError                                Traceback (most recent call last)
Cell In[3], line 6
      4 # Create NLP engine based on configuration
      5 provider = NlpEngineProvider(conf_file=conf_file)
----> 6 nlp_engine = provider.create_engine()
      8 # Pass the created NLP engine and supported_languages to the AnalyzerEngine
      9 analyzer = AnalyzerEngine(
     10     nlp_engine=nlp_engine, 
     11     supported_languages=["en"]
     12 )

File ~/Projects/pii/lib/python3.12/site-packages/presidio_analyzer/nlp_engine/nlp_engine_provider.py:81, in NlpEngineProvider.create_engine(self)
     79 nlp_engine_name = self.nlp_configuration["nlp_engine_name"]
     80 if nlp_engine_name not in self.nlp_engines:
----> 81     raise ValueError(
     82         f"NLP engine '{nlp_engine_name}' is not available. "
     83         "Make sure you have all required packages installed"
     84     )
     85 try:
     86     nlp_engine_class = self.nlp_engines[nlp_engine_name]

ValueError: NLP engine 'transformers' is not available. Make sure you have all required packages installed

配置文件内容(config.yaml)

nlp_engine_name: transformers
models:
  -
    lang_code: en
    model_name:
      spacy: en_core_web_sm
      transformers: StanfordAIMI/stanford-deidentifier-base

ner_model_configuration:
  labels_to_ignore:
  - O
  aggregation_strategy: simple # "simple", "first", "average", "max"
  stride: 16
  alignment_mode: strict # "strict", "contract", "expand"
  model_to_presidio_entity_mapping:
    PER: PERSON
    LOC: LOCATION
    EMAIL: EMAIL
    PHONE: PHONE_NUMBER

  low_confidence_score_multiplier: 0.4
  low_score_entity_names:
  - ID

解决方案

这个错误的核心原因是:presidio-analyzer本身不包含Transformers引擎的实现,仅安装transformers包不足以让Presidio识别到该引擎,必须额外安装专门的Presidio Transformers扩展包:

  1. 激活当前代码使用的虚拟环境,执行以下安装命令:
pip install presidio-transformers
  1. 安装完成后,重启Jupyter Notebook内核(或重新运行代码),即可正常加载配置文件中的Transformers引擎。

额外检查项:

  • 确认安装命令是在当前虚拟环境中执行的,避免安装到全局Python环境导致无法识别
  • 若仍有问题,可检查presidio-transformers的版本是否与presidio-analyzer兼容,建议安装对应版本的包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 20:35:01