Bing の tidy 極性: 白鯨をカウントしてピボットする
この演習では、"bing" レキシコンを使って別の inner_join() を適用します。
その後、テキストを理解するために、dplyr の count() と tidyr の pivot_wider() の両方で結果を操作します。
pivot_wider() 関数は、データを複数の列に展開します。今回の場合、sentiment と対応する n の値は、各行におけるポジティブまたはネガティブな語の出現頻度を表します。pivot_wider() を使うと、たとえ 0 であっても、各行にポジティブとネガティブの両方の値が入るようにデータが変換されます。
この演習はコースの一部です
Rで学ぶSentiment Analysis
演習の手順
この演習では、R セッションに、小説『白鯨(Moby Dick)』を含む m_dick_tidy と、前の演習と同様のレキシコン bing が用意されています。
m_dick_tidyとbingに対してinner_join()を実行します。- これまでと同様に、
m_dick_tidyの"term"列をレキシコンの"word"列に結合します。 - 新しいオブジェクト名は
moby_lex_wordsとします。
- これまでと同様に、
mutate()の中で、documentにas.numeric()を適用して等しいindex列を作成します。moby_lex_wordsをcount()に渡し、sentiment, indexを指定してmoby_countを作成します。moby_countをpivot_wider()にパイプし、names_fromはsentiment列、values_fromはn列、値は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