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データフレームです。
誰かがこれをなくす方法を知っていますか?
(フルノートブックが利用可能 ここ )
警告を望まない、または抑制できない他の人へ。
これは、ngrams
がジェネレータを終了するためにStopIteration
例外を発生させているために発生しており、これはPython 3.5から非推奨です。
ジェネレーターが停止するコードを変更することで警告を取り除くことができるので、StopIteration
を上げる代わりに、Pythonのキーワードreturn
を使用するだけです。
詳細: PEP 479
すべての警告を静めたいだけの場合は、次のことができます。
import warnings
warnings.filterwarnings('ignore')
これらの警告に耳を傾ける必要があります...
次のようなラッパーを使用できます。
def get_data(gen):
try:
for elem in gen:
yield elem
except (RuntimeError, StopIteration):
return
そして(あなたの例によると):
data = get_data(ngrams(tokens, 3))
トリックを行う必要があります