MOHAMAD FRANANDA ADIEZWARA RAMADHAN
SENTIMEN ANALISIS SEDERHANA MENGGUNAKAN NLP
DASAR TEORI :
Dalam teknologi AI, ada beberapa cabang disiplin ilmu yang sangat penting dan banyak digunakan. Salah satunya yaitu Text Mining dan NLP (Natural Language Processing). Apa itu NLP? NLP adalah kemampuan program komputer untuk memahami bahasa manusia seperti yang diucapkan dan ditulis - disebut sebagai bahasa alami. NLP adalah cabang dari Artificial Intelligence yang berhubungan dengan interaksi antara mesin dan manusia menggunakan bahasa natural
Vektorisasi data adalah proses normalisasi data teks dengan pemberian nilai terhadap setiap fitur. saya akan menggunakan teknik TF-IDF untuk pemberian bobot fitur. Teknik ini akan menghitung nilai Term Frequency (TF) dan Inverse Document Frequency (IDF) pada setiap fitur di setiap dokumen dalam korpus. Sebelum melakukan analisis data teks, data teks perlu diubah ke dalam bentuk data numerik dengan menggunakan teknik-teknik vektorisasi data teks. Beberapa teknik yang dapat digunakan dalam vektorisasi data teks yaitu Bag of Words, TF-IDF, dan word embedding. Vektorisasi data teks penting dilakukan dalam mengolah data teks karena komputer hanya dapat mengerti dan memproses data numerik. Selain itu, dengan vektorisasi data teks yang tepat dapat menghasilkan hasil terbaik dalam analisis yang dilakukan.
Sentiment analysis adalah proses penggunaan text analytics untuk mendapatkan berbagai sumber data dari internet dan beragam platform media sosial. Tujuannya adalah untuk memperoleh opini dari pengguna yang terdapat pada platform tersebut. Setiap hari, internet dibanjiri oleh miliaran data dari berbagai sumber. Sentiment analysis adalah suatu teknik natural language processing yang digunakan untuk menentukan status suatu data, entah itu mengandung muatan positif, netral, atau justru negatif. Caranya adalah dengan menggali konteks yang masih berhubungan dengan materi sumber
INTRUKSI :
Untuk data yang ada pada link: https://www.kaggle.com/marklvl/sentiment-labelled-sentences-data-set, silahkan diubah menjadi data numerik yang siap untuk digunakan pada analisis lebih lanjut dengan menggunakan teknik, Bag of Words, TF-IDF, dan Word Embedding. Dikerjakan dengan jupyter notebook pada komputer ataupun google colaboratory,
JAWABAN :
Sentimen Analisis Sederhana Menggunakan NLP
Langkah pertama unduh dataset yang ada pada Kaggle, setelah itu upload dataset tersebut ke google drive kita, setelah di upload lalu hubungkan google drive dengan google colaboratory . Google Colab atau Google Colaboratory, adalah sebuah executable document yang dapat digunakan untuk menyimpan, menulis, serta membagikan program yang telah ditulis melalui Google Drive. Google Drive merupakan salah satu layanan milik Google yang memungkinkan pengguna untuk dapat menyimpan file, mem-backup file, dan bahkan mengedit file pengguna lainnya.
Langkah selanjutnya import library yang dibutuhkan untuk proses sentiment analysis seperti nltk,numpy,genshim,sklearn dan library lainnya, NLTK (https://www.nltk.org) adalah library yang digunakan untuk pengolahan data bahasa manusia. NumPy (Numerical Python) adalah library python yang digunakan untuk bekerja dengan array dan juga memiliki fungsi yang bekerja dalam domain aljabar linier, transformasi fourier, dan matriks. Gensim merupakan library dari Python yang dikhususkan dalam Natural Language Processing, yaitu topic modeling, document indexing dan similarity. Scikit-learn atau sklearn merupakan sebuah module dari bahasa pemrograman Python yang dibangun berdasarkan NumPy, SciPy, dan Matplotlib. Dan library lainnya
Nama Kumpulan Data: Kumpulan Data Kalimat Berlabel Sentimen
Sumber Kumpulan Data: Pustaka Pembelajaran Mesin UCI
Nama Kumpulan Data: Kumpulan Data Kalimat Berlabel Sentimen
Sumber Kumpulan Data: Pustaka Pembelajaran Mesin UCI
Info Kumpulan Data: Kumpulan data ini dibuat dengan ulasan pengguna yang dikumpulkan melalui 3 situs web berbeda (Amazon, Yelp, Imdb). Komentar ini terdiri dari ulasan restoran, film dan produk. Setiap catatan dalam kumpulan data diberi label dengan dua emotikon yang berbeda. Ini adalah 1: Positif, 0: Negatif.
kita akan membuat model analisis sentimen menggunakan kumpulan data yang telah kita berikan di atas.
Kita akan membangun model Machine Learning dengan bahasa pemrograman Python menggunakan library sklearn dan nltk.
Sekarang kita bisa pergi ke bagian penulisan kode kita.
Gunakan Fungsi df.isnull() fungsi dari pandas untuk memeriksa apakah dataframe ada nilai null. Jika ada akan ditampilkan true dan false jika tidak ada. Gunakan juga df.dropna untuk menghapus missing value
Lalu Langkah selanjutnya baca dataset yang ada pada google drive dengan perintah pd.read, lalu setelah itu gabungkan semua dataset amazon,yelp.imdb dengan perintah pd.concat
Langkah selanjutnya lakukan visualisasi data juga menggunakan pie chart, Pie chart digunakan digunakan untuk menampilkan total persentase yang harus mencapai 100%, dimana setiap potongan pie akan menampilkan ukuran tertentu. Bentuk lingkaran dengan cepat mengaktifkan intuisi kita sebagai pembaca untuk memahami bahwa kita dapat membagi-bagi pie menjadi beberapa potongan
Langkah selanjutnya lakukan text processing, Text preprocessing adalah suatu proses untuk menyeleksi data text agar menjadi lebih terstruktur lagi dengan melalui serangkaian tahapan yang meliputi tahapan case folding, tokenizing, filtering dan stemming, lalu lakukan juga split data, Train/test split adalah salah satu metode yang dapat digunakan untuk mengevaluasi performa model machine learning. Metode evaluasi model ini membagi dataset menjadi dua bagian yakni bagian yang digunakan untuk training data dan untuk testing data dengan proporsi tertentu
Lalu Langkah selanjutnya gunakan algoritma tf-idf, Term Frequency — Inverse Document Frequency atau TF — IDF adalah suatu metode algoritma yang berguna untuk menghitung bobot setiap kata yang umum digunakan. Metode ini juga terkenal efisien, mudah dan memiliki hasil yang akurat
Lalu Langkah selanjutnya lakukan evaluasi model, gunakan precision, recall dan akurasi. Precision adalah tingkat ketepatan antara informasi yang diminta oleh pengguna dengan jawaban yang diberikan oleh sistem. Sedangkan recall adalah tingkat keberhasilan sistem dalam menemukan kembali sebuah informasi. Accuracy didefinisikan sebagai tingkat kedekatan antara nilai prediksi dengan nilai actual
Lalu Langkah selanjutnya kita akan mencoba word embedding dengan menggunakan word2vec. Word embeddings adalah proses konversi kata yang berupa karakter alphanumeric kedalam bentuk vector. Setiap kata adalah vector yang merepresentasikan sebuah titik pada space dengan dimensi tertentu. Dengan word embedding, kata-kata yang memiliki properti tertentu, misalnya berada pada konteks yang sama, atau memiliki semantic meaning yang sama berada tidak jauh satu sama lain pada space tersebut.
Lalu gunakan Fungsi len() digunakan untuk mengetahui panjang (jumlah item atau anggota) dari objek seperti sequence (string, list, tuple) dan lainnya
Lalu Langkah selanjutnya gunakan nested function yang huruf kecil, menghapus stopwords dan angka dari daftar token. Lalu gunakan fungsi return untuk menggunakan fungsi di atas untuk memproses keluaran tokenizer Twitter lebih lanjut.
rata-rata embeddings untuk setiap kata
mengevaluasi performance algoritma dari Machine Learning (ML), classification report adalah metrik evaluasi performa dalam machine learning. Ini digunakan untuk menunjukkan precision, recall, f1-score, dan dukungan model klasifikasi terlatih Anda. Precision didefinisikan sebagai rasio positif benar dengan jumlah positif true dan positif false. Recall didefinisikan sebagai rasio positif sejati dengan jumlah positif true dan negatif false. F1 adalah rata-rata harmonik tertimbang dari presisi dan recall. Semakin mendekati nilai skor F1 dengan 1,0 maka semakin baik kinerja model yang diharapkan. Support adalah jumlah kejadian aktual dari kelas dalam dataset. Itu tidak bervariasi antar model, itu hanya mendiagnosis proses evaluasi kinerja. Lalu gunakan juga Logistic regression adalah jenis analisis statistik yang sering digunakan data analyst untuk pemodelan prediktif. Logistic Regression adalah sebuah algoritma klasifikasi untuk mencari hubungan antara fitur (input) diskrit/kontinu dengan probabilitas hasil output diskrit tertentu.
Pada gambar diatas model yang dilakukan menghasilkan akurasi yang cukup baik yaitu 84 %