Как избавиться от предупреждения "DeprecationWarning generator' ngrams ' raised StopIteration"

во время работы над блокнотом Kaggle я столкнулся с проблемой. Следующий блок кода:

from nltk import ngrams
def grams(tokens):
    return list(ngrams(tokens, 3))
negative_grams = preprocessed_negative_tweets.apply(grams)

в результате появился красный ящик со словами

/opt/conda/bin/ipython:5: DeprecationWarning: generator 'ngrams' raised StopIteration

переменная preprocessed_negative_tweets - это фрейм данных Pandas, содержащий токены.

кто-нибудь знает, как это сделать?

(весь доступный ноутбук здесь)

2 ответов


для тех, кто не хочет или не может подавить предупреждение.

это происходит потому, что ngrams воспитывает StopIteration исключение для завершения генератора, и это устарело от Python 3.5.

вы можете избавиться от предупреждения, изменив код, где генератор останавливается, поэтому вместо повышения StopIteration вы просто используете ключевое слово Python return.

на: PEP 479


Если вы просто хотите успокоить все предупреждения, вы можете сделать:

import warnings

warnings.filterwarnings('ignore')

мы должны прислушаться к этим предупреждениям...