Пакет трансформаторов Presidio недоступен, несмотря на то, что он установлен

Я пытаюсь запустить пример кода в этой документации Microsoft, но получаю сообщение об ошибке «Пакет не найден». Я использую MAC, и у моего друга тоже была такая же проблема на его машине. Я уверен, что у меня установлен пакет трансформаторов. Я импортировал без ошибок. Я нахожусь в виртуальной среде, на ноутбуке Jupyter с кодом.

Если я удалю файл config.yaml, он запустится без ошибок, так что, возможно, в нем что-то есть. Но это та же версия, что и в документации.

Код:

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

Мой конфиг.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
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
75
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам потребуется установить пакет Presidio Analyser с дополнительным спецификатором зависимости transformers:

pip install "presidio-analyzer[transformers]"

Это установит дополнительные зависимости, необходимые для механизма NLP на основе трансформаторов.

Другие вопросы по теме