Как подавить ведение журнала в spacy?

#python #nlp #spacy

#python #nlp #spacy

Вопрос:

Я использую spacy прямо сейчас для обработки некоторых неанглоязычных текстовых данных. Пример фрагмента кода приведен ниже

 nlp = spacy.load('fr')
pos = POSTagger()
french_lemmatizer = LefffLemmatizer(after_melt=True, default=True)
nlp.add_pipe(pos, name='pos', after='parser')
nlp.add_pipe(french_lemmatizer, name='lefff', after='pos')
doc = nlp(u"Apple cherche a acheter une startup anglaise pour 1 milliard de dollard")
for d in doc:
    print(d.text, d.pos_, d._.melt_tagger, d._.lefff_lemma, d.tag_, d.lemma_)
  

Всякий раз, когда я запускаю этот код, он выводит эти журналы

 2020-11-05 17:35:00,497 - spacy_lefff.melt_tagger - INFO -   TAGGER: Loading lexicon...
2020-11-05 17:35:01,115 - spacy_lefff.melt_tagger - INFO -   TAGGER: Loading tags...
2020-11-05 17:35:01,152 - spacy_lefff.melt_tagger - INFO -   TAGGER: Loading model from /usr/local/Caskroom/miniconda/base/envs/computer_vision_playground/lib/python3.6/site-packages/spacy_lefff/data/tagger/models/fr...
2020-11-05 17:35:01,853 - spacy_lefff.melt_tagger - INFO -   TAGGER: Loading model from /usr/local/Caskroom/miniconda/base/envs/computer_vision_playground/lib/python3.6/site-packages/spacy_lefff/data/tagger/models/fr: done
2020-11-05 17:35:01,857 - spacy_lefff.lefff - INFO - New LefffLemmatizer instantiated.
2020-11-05 17:35:01,859 - spacy_lefff.lefff - INFO - Reading lefff data...
2020-11-05 17:35:02,472 - spacy_lefff.lefff - INFO - Successfully loaded lefff lemmatizer
2020-11-05 17:35:02,549 - spacy_lefff.melt_tagger - INFO -   TAGGER: POS Tagging...
  

Теперь мне нужно использовать этот POS-теггер для тысяч текстов, и мне нужно перебирать их один за другим. Печать этих журналов может быть слишком большой для ноутбука Jupyter, поэтому я хочу подавить их и использовать пакет progress monitor tqdm , который прост в использовании в циклах for. Есть ли какой-нибудь способ подавить журналы?

Ответ №1:

По-видимому, проблема не spacy в регистрации spacy-lefff пакета, а в регистрации. Для других пользователей библиотеки, которые могут захотеть его подавить, я просто устанавливаю уровень предупреждения spacy-lefff пакета для подавления журналов. Фрагмент ниже

 import logging

logging.getLogger("spacy_lefff").setLevel(logging.WARNING)