開始使用免費開始

分而治之:用極性建立比較雲

既然你已經看到如何用極性來區分語料庫,現在就動手做吧!下面的程式碼會帶你把語料依情緒分開,讓你能聚焦在子集合中的資訊,而不是一次看整體。

你的 R 工作階段已載入 oz_pol,它是將 polarity() 套用到「The Wonderful Wizard of Oz」後得到的物件。

為了簡化流程,我們寫了一個自訂函式 pol_subsections(),用來依極性分割語料。首先,這個函式接受一個資料框,其中每一列是語料庫的一個句子或文件。接著,它會根據極性值大於 0 或小於 0 來篩選資料框。最後,將正向與負向的句子(非零極性)分別用參數 collapse 串接,讓詞彙彙整成單一語料。最終,會把這兩份文件合併成一個包含兩個獨立文件的向量。

pol_subsections <- function(df) {
  x.pos <- subset(df$text, df$polarity > 0)
  x.neg <- subset(df$text, df$polarity < 0)
  x.pos <- paste(x.pos, collapse = " ")
  x.neg <- paste(x.neg, collapse = " ")
  all.terms <- c(x.pos, x.neg)
  return(all.terms)
}

到這一步,你已經排除了中性句子,接下來要專注整理剩下的文字。在這個練習中我們會再次使用 %>% 運算子把物件傳給函式。做完一些基本清理後,使用 comparison.cloud() 來產生視覺化。

本練習屬於課程

R 情感分析

檢視課程

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

oz_df <- oz_pol$all %>%
  # Select text.var as text and polarity
  ___(text = ___, polarity = ___)

# Apply custom function pol_subsections()
all_terms <- ___(___)

all_corpus <- all_terms %>%
  # Source from a vector
  ___() %>% 
  # Make a volatile corpus 
  ___()
編輯並執行程式碼