Jumat, 03 Maret 2017

Sentiment Analysis Using R : Pre-Processing

Analisis Persepsi Publik, sering sekali penelitian yang bersifat subyektif seperti ini dilakukan. Kadang sebagai orang awam dalam dunia perstatistikaan, bingung sendiri, gimana caranya dapat Opini Publik yah? cara ambil data kayak gimana? pake kuesioner kah?. Satu hal yang aku percaya adalah setiap kali kamu mengalami kebingungan, maka setiap kali itu pula pengetahuanmu diperluas. Karena kita bukan membahas tentang motivasi, jadi saya kenalkan pembahasan kali ini mengenai Sentiment Analysis Using R : Pre-Processing
Dalam teknik data mining, penambangan terhadap data harus benar-benar siap untuk dilakukan analisis. untuk itu sebelum masuk analisis perlu dilakukan pre-processing. Tahap pre-processing yang dilakukan secara umum dalam text mining pada dokumen, yaitu case folding, tokenizing, filtering, dan stemming.
Case folding adalah mengubah semua huruf dalam dokumen menjadi huruf kecil, hanya huruf ‘a’ sampai dengan ‘z’ yang diterima. Karakter selain huruf dihilangkan dan dianggap delimeter.
Text Input
Text Output
Aku adalah mahasiswa Statistika di Universitas Islam Indonesia.
aku
adalah
mahasiswa
statistika
di
universitas
islam
indonesia
Tahap tokenizing atau parsing adalah tahap pemotongan string input berdasarkan tiap kata yang menyusunnya, sedangkan tahap filtering adalah tahap mengambil kata-kata penting dari hasil term. Bisa menggunakan algoritma stoplist (membuang kata yang kurang penting) atau wordlist (menyimpan kata penting). Stoplist/stopword adalah kata-kata yang tidak deskriptif yang dapat dibuang dalam pendekatan bag-of-word. Contoh stopwords adalah “yang”, “dan”, “di”, ”dari”, dan seterusnya.
Hasil Token
Hasil Filter
aku
adalah
mahasiswa
statistika
di
universitas
islam
indonesia
aku
mahasiswa
statistika
universitas
islam
indonesia
Tahap stemming adalah tahap mencari akar kata dari tiap kata hasil filtering. Pada tahap ini dilakukan proses pengambilan berbagai bentukan kata kedalam suatu representasi yang sama. Tahap ini kebanyakan dipakai untuk teks berbahasa inggris dan lebih sulit diterapkan pada teks berbahasa Indonesia. Hal ini dikarenakan bahasa Indonesia tidak memiliki rumus bentuk baku yang permanen.
Hasil Filtering
Hasil Stemming
membeli
menganalisis
membuat
dikerjakan
dibentuk
beli
analisis
buat
kerja
bentuk
Itulah tahapan pre-processing untuk lebih meningkatkan pengetahuan, cobalah beberapa pre-processing data berikut. data cleaning sangat penting dalam hal ini.


preprocessing <- function(mstat){
  # Membuat setiap kata menjadi huruf kecil
  doc <- tolower(mstat)  
  # Menghapus semua #hashtags dan @mentions
  doc <- gsub("(?:#|@)[a-zA-Z0-9_]+ ?", "", doc)
  
  # Hapus kata-kata dengan lebih dari 3 angka di dalamnya (itu mubazir haha, dan tidak informatif)
  doc <- gsub("[a-zA-Z]*([0-9]{3,})[a-zA-Z0-9]* ?", "", doc)
  
  # Hapus semua tanda baca bro (tau kan tanda baca kek mana)
  doc <- gsub("[[:punct:]]", "", doc)
  
  # Hapus semua karakter baris baru (kalau bahasa manusianya sih biar ga ada ENTER)
  doc <- gsub("[\r\n]", "", doc)
  
  # Pola Regex untuk menghapus stop words
  stop_pattern <- paste0("\\b(", paste0(stopwords("en"), collapse="|"), ")\\b")
  doc <- gsub(stop_pattern, "", doc)
  
  # Ganti spasi lebih dari 1 spasi menjadi spasi tunggal
  doc <- gsub(" {2,}", " ", doc)
  
  # Bagi ruang dan kembali ke vektor daftar kategori
  doc_words <- strsplit(doc, " ")
  return(doc_words)
}
Untuk hasil yang lebih maksimal, anda dapat menggunakan bantuan stopword list. Namun ini cukup menyita waktu karena harus secara manual membuat list kata yang akan di cleaning. Sekian dulu, sampai bertemu pada Tahapan Selanjutnya!

Tidak ada komentar:

Posting Komentar