Mulai sekarangMulai gratis

Lebih dari sekadar kata: tokenisasi (1)

Penggunaan umum text mining mencakup menganalisis ulasan belanja untuk mengetahui perasaan pembeli terhadap produk, atau menganalisis berita keuangan untuk memprediksi sentimen terkait harga saham. Untuk menganalisis data teks, langkah praproses yang lazim adalah mengubah teks menjadi huruf kecil (lihat tolower()) dan memecah kalimat menjadi kata-kata individual.

ft_tokenizer() melakukan kedua langkah tersebut. Cara penggunaannya mengikuti pola yang sama seperti transformasi lain yang telah Anda lihat, tanpa argumen tambahan.

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

Karena keluaran dapat memuat jumlah kata yang berbeda di setiap baris, output.col berbentuk kolom daftar, di mana setiap elemen adalah daftar string. Untuk menganalisis data teks, biasanya lebih baik memiliki satu kata per baris data. Format daftar-dari-daftar-string ini dapat diubah menjadi satu vektor karakter menggunakan unnest() dari paket tidyr. Saat ini belum ada metode untuk melakukan unnest data langsung di Spark, sehingga untuk sementara Anda perlu mengoleksinya ke R sebelum melakukan transformasi. Pola kode untuk mencapainya adalah sebagai berikut.

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

Jika Anda ingin mempelajari lebih lanjut penggunaan paket tidyr, ikuti kursus Cleaning Data in R.

Latihan ini merupakan bagian dari kursus

Pengantar Spark dengan sparklyr di R

Lihat Kursus

Instruksi latihan

Koneksi Spark telah dibuat untuk Anda sebagai spark_conn. Sebuah tibble yang terhubung ke metadata track yang disimpan di Spark telah didefinisikan sebelumnya sebagai track_metadata_tbl.

  • Buat variabel bernama title_text dari track_metadata_tbl.
    • Pilih kolom artist_name dan title.
    • Gunakan ft_tokenizer() untuk membuat kolom baru, word, yang berisi judul yang dipecah menjadi kata-kata.
    • Kumpulkan hasilnya.
    • Mutasi kolom word, meratakannya menjadi daftar vektor karakter menggunakan lapply dan as.character.
    • Gunakan unnest() untuk meratakan kolom daftar tersebut, sehingga Anda memperoleh satu kata per baris.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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
  ___
Edit dan Jalankan Kode