極性ベースのコーパスを作成する
この演習では、テキストマイニングのワークフローのステップ3を行います。qdap はtidyパッケージではありませんが、返される polarity リスト(ヒントです:all polarity のスコアです)に基づいて新しい列を mutate() で作成します。第3章では、ベースRのみで記述したカスタム関数 pol_subsections を使いましたが、tidyの原則に沿って、この演習ではまず filter() を使い、その後に pull() を導入します。pull() は単一の変数を取り出す点で [[ と同様に動作します。
分割できたら、ポジティブとネガティブのコメントをそれぞれ1つの大きなドキュメントに結合し、ポジティブ/ネガティブな宿泊レビューに含まれるすべての単語を代表させます。
最後に、TF-IDF(Term Frequency Inverse Document Frequency)で重み付けした単語文書行列(TDM)を作成します。この演習のコードはtidyな構造から始まるため、スタイルを統一する目的で、tm から拝借した関数を %>% 演算子とあわせて使用します。もし tm パッケージの基本に馴染みがなければ、Text Mining with Bag-of-Words in R コースを参照してください。単語の出現回数(頻度)を数える代わりに、TDM 内の値は使われすぎた語へのペナルティがかかるため、情報量の少ない語を抑制できます。
この演習はコースの一部です
Rで学ぶSentiment Analysis
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
pos_terms <- bos_reviews %>%
# Add polarity column
___(polarity = ___) %>%
# Filter for positive polarity
___(___) %>%
# Extract comments column
___(___) %>%
# Paste and collapse
___(collapse = "___")