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

มากกว่าคำ: การแบ่งโทเคน (1)

การขุดข้อความ (text mining) ถูกนำไปใช้ในหลากหลายบริบท เช่น การวิเคราะห์รีวิวสินค้าเพื่อทำความเข้าใจความรู้สึกของผู้ซื้อ หรือการวิเคราะห์ข่าวการเงินเพื่อประเมินแนวโน้มของราคาหุ้น ในการวิเคราะห์ข้อมูลข้อความ ขั้นตอนการเตรียมข้อมูลที่พบบ่อย ได้แก่ การแปลงข้อความเป็นตัวพิมพ์เล็กทั้งหมด (ดู tolower()) และการแยกประโยคออกเป็นคำแต่ละคำ

ft_tokenizer() ทำทั้งสองขั้นตอนนี้พร้อมกัน รูปแบบการใช้งานเหมือนกับฟังก์ชันการแปลงข้อมูลอื่น ๆ ที่ได้เรียนมา โดยไม่ต้องระบุอาร์กิวเมนต์เพิ่มเติม

shop_reviews %>%
  ft_tokenizer("review_text", "review_words")

เนื่องจากผลลัพธ์แต่ละแถวอาจมีจำนวนคำไม่เท่ากัน output.col จึงเป็น list column ที่แต่ละองค์ประกอบเป็น list ของ string ในการวิเคราะห์ข้อมูลข้อความ มักจะสะดวกกว่าหากมีหนึ่งคำต่อหนึ่งแถว รูปแบบ list-of-list-of-strings สามารถแปลงเป็น character vector เดี่ยวได้โดยใช้ unnest() จากแพ็กเกจ tidyr ปัจจุบันยังไม่มีวิธี unnest ข้อมูลบน Spark โดยตรง จึงต้องรวบรวมข้อมูลมายัง R ก่อน แล้วจึงแปลง รูปแบบโค้ดมีดังนี้

library(tidyr)
text_data %>%
  ft_tokenizer("sentences", "word") %>%
  collect() %>%
  mutate(word = lapply(word, as.character)) %>%
  unnest(word)

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับแพ็กเกจ tidyr สามารถเรียนได้ที่คอร์ส Cleaning Data in R

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

แนะนำ Spark ด้วย sparklyr ใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

ระบบได้สร้าง Spark connection ให้แล้วในชื่อ spark_conn และกำหนด tibble ที่เชื่อมต่อกับ track metadata ที่จัดเก็บใน Spark ไว้ล่วงหน้าในชื่อ track_metadata_tbl

  • สร้างตัวแปรชื่อ title_text จาก track_metadata_tbl
    • เลือกฟิลด์ artist_name และ title
    • ใช้ ft_tokenizer() เพื่อสร้างฟิลด์ใหม่ชื่อ word ซึ่งเก็บชื่อเพลงที่ถูกแยกออกเป็นคำแต่ละคำ
    • รวบรวมผลลัพธ์
    • แปลงคอลัมน์ word โดยทำให้แบนราบเป็น list ของ character vector โดยใช้ lapply และ as.character
    • ใช้ unnest() เพื่อทำให้ list column แบนราบ และได้หนึ่งคำต่อหนึ่งแถว

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# track_metadata_tbl has been pre-defined
track_metadata_tbl

title_text <- track_metadata_tbl %>%
  # Select artist_name, title
  ___ %>%
  # Tokenize title to words
  ___ %>%
  # Collect the result
  ___ %>%
  # Flatten the word column 
  ___ %>% 
  # Unnest the list column
  ___
แก้ไขและรันโค้ด