ストップワードとハッシング
次のステップでは、まず stopwords を除去し、続いてハッシングトリックを適用し、結果を TF-IDF に変換します。
これらの概念の簡単なおさらいです。
- ハッシングトリックは、非常に大きい(場合によっては無限の)集合(この場合はSMSメッセージに含まれるすべての単語)を、より小さな有限個の値に写像する、高速かつ省メモリな方法です。
- TF-IDF 行列は、各文書に対して単語がどれだけ重要かを表します。各文書内での単語の出現頻度に加えて、コレクション全体での出現頻度も考慮します。
トークン化済みのSMSデータは、sms の words という列に保存されています。空白の扱いを整理してあるため、トークン化後のテキストはより見やすくなっています。
この演習はコースの一部です
Machine Learning with PySpark
演習の手順
StopWordsRemover、HashingTF、IDFクラスをインポートします。StopWordsRemoverオブジェクトを作成します(入力列はwords、出力列はterms)。smsに適用します。HashingTFオブジェクトを作成します(前のステップの出力を入力にし、出力列はhash)。wrangledに適用します。IDFオブジェクトを作成します(前のステップの出力を入力にし、出力列はfeatures)。wrangledに適用します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
from pyspark.ml.____ import ____, ____, ____
# Remove stopwords
wrangled = ____(inputCol=____, outputCol=____)\
.____(sms)
# Apply the hashing trick
wrangled = ____(____, ____, numFeatures=1024)\
.____(wrangled)
# Convert hashed symbols to TF-IDF
tf_idf = ____(____, ____)\
.____(wrangled).____(wrangled)
tf_idf.select('terms', 'features').show(4, truncate=False)