建立 Tidy Text Tibble!
既然你已經學過 tidy 原則,這段程式碼會幫你把資料整理成 tibble,之後就能在 tidyverse 中操作!
先前你學到,對 TermDocumentMatrix() 物件套用 tidy() 會把 TDM 轉成 tibble。這個練習中,你會直接從名為 comments 的評論欄位建立文字資料。
首先使用 unnest_tokens() 將文字轉為小寫,並把評論斷詞為單字。
有時候,在語料的每個群組中保留原始的詞序很有用。為此,請使用 mutate()。在 mutate() 內,你會用到 seq_along() 來從 1 產生到物件長度的整數序列。這能記錄文字最初撰寫時的詞序。
在 tm 套件中,你會用 removeWords() 來移除停用詞。在 tidyverse 中,則需要先載入停用詞詞彙表,然後在 tidy text 資料框與停用詞之間套用一次 anti_join()。
本練習屬於課程
R 情感分析
練習說明
- 以管線符(
%>%)將原始評論物件bos_reviews傳入unnest_tokens()以建立tidy_reviews。傳入新欄位名稱word,並指定comments欄。記住在 tidyverse 中不需要$或引號。 - 用 tidy 的方式建立新變數!把
tidy_reviews重新指定為將其傳入group_by並以欄位id分組,然後再%>%傳入mutate()。在 mutate 中建立新變數original_word_order,其值為seq_along(word)。 - 列印出
tidy_reviews這個 tibble。 - 以
data("stop_words")將預先建立的「SMART」停用詞載入你的 R 工作階段。 - 以
%>%將原本的tidy_reviews傳入anti_join()來覆寫tidy_reviews。在anti_join()中傳入預先定義好的stop_words詞彙表。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Vector to tibble
tidy_reviews <- bos_reviews %>%
___(___, ___)
# Group by and mutate
tidy_reviews <- tidy_reviews %>%
___(___) %>%
___(original_word_order = ___(___))
# Quick review
___
# Load stopwords
___
# Perform anti-join
tidy_reviews_without_stopwords <- tidy_reviews %>%
___(___)