เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

แบ่งแล้วพิชิต: ใช้ค่า Polarity สร้าง Comparison Cloud

ตอนนี้ที่เห็นแล้วว่า polarity สามารถนำมาแบ่งคอร์ปัสได้อย่างไร มาลองทำกันเลย! โค้ดในแบบฝึกหัดนี้จะพาแบ่งคอร์ปัสตามค่าความรู้สึก เพื่อให้สามารถมองเข้าไปในข้อมูลแต่ละส่วนย่อยแทนที่จะมองภาพรวมทั้งหมด

ใน R session มีออบเจ็กต์ oz_pol ซึ่งสร้างขึ้นโดยการใช้ polarity() กับข้อความ "The Wonderful Wizard of Oz"

เพื่อความสะดวก เราได้สร้างฟังก์ชันที่กำหนดเองอย่างง่ายชื่อ pol_subsections() ซึ่งจะแบ่งคอร์ปัสตามค่า polarity โดยฟังก์ชันรับ data frame ที่แต่ละแถวเป็นประโยคหรือเอกสาร จากนั้นกรองข้อมูลเฉพาะแถวที่มีค่า polarity มากกว่าหรือน้อยกว่า 0 แล้วนำประโยคที่มีค่าบวกและลบ (non-zero polarity) มา paste รวมกันด้วยพารามิเตอร์ collapse เพื่อจัดกลุ่มคำให้เป็นคอร์ปัสเดียว และสุดท้ายนำทั้งสองเอกสารมา concatenate เป็น vector เดียวที่ประกอบด้วยสองเอกสารที่แตกต่างกัน

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 
  ___()
แก้ไขและรันโค้ด