ストップワードを除去してデータセットを縮約する
この演習では、データからストップワードを除去します。ストップワードとは、"I"、"the"、"a" などの、頻出する一方で分析上あまり重要でない語のことです。自分で作成したリストで明らかなストップワードを除去することもできますが、この演習では環境内で提供されている精選リスト stop_words を使って除去します。
ストップワードを取り除いたら、各要素が (k, v) というペアのタプルから成る pair RDD を作成します。ここでは、RDD 内の各単語 w に対して (w, 1) という形にします。最後に、pair RDD で同じキーを持つ値を集約して、各単語の出現回数を数えます。
作業スペースにはすでに SparkContext sc と splitRDD、そしてリスト変数 stop_words が用意されています。
この演習はコースの一部です
PySparkで学ぶBig Data入門
演習の手順
- 変数
stop_wordsに挙げられたストップワードを除去するように、splitRDDをfilterしてください。 splitRDDの各単語要素から、単語(イテレータwを使用)と数値1を要素とする pair RDD のタプルを作成してください。- pair RDD で各単語の出現回数(単語頻度)を取得してください。キーと値の (k, v) ペアを対象とする変換を使います。ここでどの関数を使うべきか、よく考えて選んでください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Filter splitRDD to remove stop words from the stop_words curated list
splitRDD_no_stop = splitRDD.____(lambda x: x.lower() not in ____)
# Create a tuple of the word (w) and 1
splitRDD_no_stop_words = splitRDD_no_stop.map(lambda w: (____, ____))
# Count of the number of occurences of each word
resultRDD = splitRDD_no_stop_words.____(lambda x, y: x + y)