Big Data Analytics - Membersihkan Data
Setelah data terkumpul, biasanya kita memiliki sumber data yang beragam dengan karakteristik berbeda. Langkah paling cepat adalah membuat sumber data ini homogen dan terus mengembangkan produk data kami. Namun, itu tergantung pada jenis datanya. Kita harus bertanya pada diri kita sendiri apakah praktis untuk menghomogenisasi data.
Mungkin sumber datanya sama sekali berbeda, dan kehilangan informasi akan besar jika sumbernya dihomogenisasi. Dalam hal ini, kita dapat memikirkan alternatif. Dapatkah satu sumber data membantu saya membuat model regresi dan yang lainnya menjadi model klasifikasi? Apakah mungkin bekerja dengan heterogenitas untuk keuntungan kita daripada hanya kehilangan informasi? Mengambil keputusan inilah yang membuat analitik menarik dan menantang.
Dalam hal tinjauan, dimungkinkan untuk memiliki bahasa untuk setiap sumber data. Sekali lagi, kami memiliki dua pilihan -
Homogenization- Ini melibatkan menerjemahkan berbagai bahasa ke bahasa di mana kami memiliki lebih banyak data. Kualitas layanan terjemahan dapat diterima, tetapi jika kami ingin menerjemahkan data dalam jumlah besar dengan API, biayanya akan menjadi signifikan. Ada perangkat lunak yang tersedia untuk tugas ini, tetapi itu juga akan mahal.
Heterogenization- Apakah mungkin mengembangkan solusi untuk setiap bahasa? Karena mudah untuk mendeteksi bahasa korpus, kami dapat mengembangkan pemberi rekomendasi untuk setiap bahasa. Ini akan melibatkan lebih banyak pekerjaan dalam hal menyetel setiap pemberi rekomendasi sesuai dengan jumlah bahasa yang tersedia tetapi jelas merupakan opsi yang layak jika kami memiliki beberapa bahasa yang tersedia.
Proyek Mini Twitter
Dalam kasus ini, pertama-tama kita perlu membersihkan data tidak terstruktur dan kemudian mengubahnya menjadi matriks data untuk menerapkan pemodelan topik padanya. Secara umum, saat mendapatkan data dari twitter, ada beberapa karakter yang kurang kami minati, setidaknya pada tahap pertama proses pembersihan data.
Misalnya, setelah mendapatkan tweet kita mendapatkan karakter aneh ini: "<ed> <U + 00A0> <U + 00BD> <ed> <U + 00B8> <U + 008B>". Ini mungkin emotikon, jadi untuk membersihkan data, kami hanya akan menghapusnya menggunakan skrip berikut. Kode ini juga tersedia di file bda / part1 / collect_data / cleaning_data.R.
rm(list = ls(all = TRUE)); gc() # Clears the global environment
source('collect_data_twitter.R')
# Some tweets
head(df$text)
[1] "I’m not a big fan of turkey but baked Mac &
cheese <ed><U+00A0><U+00BD><ed><U+00B8><U+008B>"
[2] "@Jayoh30 Like no special sauce on a big mac. HOW"
### We are interested in the text - Let’s clean it!
# We first convert the encoding of the text from latin1 to ASCII
df$text <- sapply(df$text,function(row) iconv(row, "latin1", "ASCII", sub = ""))
# Create a function to clean tweets
clean.text <- function(tx) {
tx <- gsub("htt.{1,20}", " ", tx, ignore.case = TRUE)
tx = gsub("[^#[:^punct:]]|@|RT", " ", tx, perl = TRUE, ignore.case = TRUE)
tx = gsub("[[:digit:]]", " ", tx, ignore.case = TRUE)
tx = gsub(" {1,}", " ", tx, ignore.case = TRUE)
tx = gsub("^\\s+|\\s+$", " ", tx, ignore.case = TRUE)
return(tx)
}
clean_tweets <- lapply(df$text, clean.text)
# Cleaned tweets
head(clean_tweets)
[1] " WeNeedFeminlsm MAC s new make up line features men woc and big girls "
[1] " TravelsPhoto What Happens To Your Body One Hour After A Big Mac "
Langkah terakhir dari proyek mini pembersihan data adalah membersihkan teks yang dapat kita ubah menjadi matriks dan menerapkan algoritme. Dari teks yang disimpan diclean_tweets vektor kita dapat dengan mudah mengubahnya menjadi sekumpulan matriks kata-kata dan menerapkan algoritma pembelajaran tanpa pengawasan.