始める無料で始める

ストップワードとハッシング

次のステップでは、まず stopwords を除去し、続いてハッシングトリックを適用し、結果を TF-IDF に変換します。

これらの概念の簡単なおさらいです。

  • ハッシングトリックは、非常に大きい(場合によっては無限の)集合(この場合はSMSメッセージに含まれるすべての単語)を、より小さな有限個の値に写像する、高速かつ省メモリな方法です。
  • TF-IDF 行列は、各文書に対して単語がどれだけ重要かを表します。各文書内での単語の出現頻度に加えて、コレクション全体での出現頻度も考慮します。

トークン化済みのSMSデータは、smswords という列に保存されています。空白の扱いを整理してあるため、トークン化後のテキストはより見やすくなっています。

この演習はコースの一部です

Machine Learning with PySpark

コースを見る

演習の手順

  • StopWordsRemoverHashingTFIDF クラスをインポートします。
  • 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)
コードを編集して実行