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
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_textdaritrack_metadata_tbl.- Pilih kolom
artist_namedantitle. - 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 menggunakanlapplydanas.character. - Gunakan
unnest()untuk meratakan kolom daftar tersebut, sehingga Anda memperoleh satu kata per baris.
- Pilih kolom
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
___