始める無料で始める

Bing の tidy 極性: 白鯨をカウントしてピボットする

この演習では、"bing" レキシコンを使って別の inner_join() を適用します。

その後、テキストを理解するために、dplyrcount()tidyrpivot_wider() の両方で結果を操作します。

pivot_wider() 関数は、データを複数の列に展開します。今回の場合、sentiment と対応する n の値は、各行におけるポジティブまたはネガティブな語の出現頻度を表します。pivot_wider() を使うと、たとえ 0 であっても、各行にポジティブとネガティブの両方の値が入るようにデータが変換されます。

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

Rで学ぶSentiment Analysis

コースを見る

演習の手順

この演習では、R セッションに、小説『白鯨(Moby Dick)』を含む m_dick_tidy と、前の演習と同様のレキシコン bing が用意されています。

  • m_dick_tidybing に対して inner_join() を実行します。
    • これまでと同様に、m_dick_tidy"term" 列をレキシコンの "word" 列に結合します。
    • 新しいオブジェクト名は moby_lex_words とします。
  • mutate() の中で、documentas.numeric() を適用して等しい index 列を作成します。
  • moby_lex_wordscount() に渡し、sentiment, index を指定して moby_count を作成します。
  • moby_countpivot_wider() にパイプし、names_fromsentiment 列、values_fromn 列、値は values_fill = 0 で埋めて、moby_wide を作成します。
  • 次のパイプでは、arrange を使って index の値で行を並べ替えます

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Inner join
moby_lex_words <- inner_join(___, ___, by = c("___" = "___"))

moby_lex_words <- moby_lex_words %>%
  # Set index to numeric document
  mutate(___ = as.numeric(___))

moby_count <- moby_lex_words %>%
  # Count by sentiment, index
  ___(___, ___)

# Examine the counts
moby_count

moby_wide <- moby_count %>%
  # Pivot the sentiments
  pivot_wider(names_from = ___, values_from = ___, values_fill = ___) %>% 
  arrange(index)

# Review the pivoted data
moby_wide
コードを編集して実行