Belakangan ini ramai terkait perlombaan yang diadakan oleh Ruang Guru dengan nama Conflict of Champions. Ruang Guru sendiri merupakan salah satu platform pembelajaran digital terbesar di Indonesia. Ruang Guru menyediakan tempat belajar jarak jauh untuk meraih pemerataan pendidikan di indonesia lewat transformasi digital.
Conflict of Champion merupakan salah satu program perlombaan bergengsi antar mahasiswa prime dari berbagai universitas baik dalam maupun luar negeri. Pada episode 4 kali ini kontestan sudah terbagi menjadi 8 kelompok. Episode bagian pertama menampilkan perlombaan bertemakan Cryptarithm sedangkan pada bagian dua bertemakan Reminiscence of Insanity.
Eksperimen ini semata-mata saya lakukan dalam rangka belajar bagaimana alur proses dari sentiment evaluation menggunakan machine studying. Saya sadar dalam prosesnya masih banyak kekurangan dan perlu pembenahan lanjutan, tapi setidaknya ini sudah menjadi kerangka awal dalam memahami prosesnya.
Tahap awal dalam melakukan sentiment analisis (bahkan semua hal yang berhubungan olah knowledge) adalah mengumpulkan knowledge. Pada eksperimen ini dilakukan dengan memanfaatkan YouTube Information API v3. Kita harus memiliki akun google cloud terlebih dahulu agar bisa menggunakannya.
Setelah kita masuk ke google cloud console, kita arahkan ke projek dan pada bagian search tulis YouTube Information API V3 lalu pilih allow. Pada bagian credential pilih create API Keys. Salin kode API yang muncul untuk nanti digunakan untuk menarik knowledge remark youtbe pada python.
Secara spesifik untuk menggunakan API Keys dan menarik remark youtube bisa ikuti langkah di sini https://www.youtube.com/watch?v=SIm2W9TtzR0
Hasil dari knowledge amassing sebagai berikut
Proses yang dilakukan adalah menghilangkan knowledge duplikat dan knowledge null. Kemudian mengecek juga terkait tipe knowledge dari kolom yang ada.
Tahap selanjutya yakni menghilangkan beberapa emot atau inputan lain yang bukan berupa teks. Pada tahap ini dilakukan untuk memastikan bahwa seluruh knowledge enter dalah remark teks. Setelah tahap ini selesai dilakukan lowercase pada semua knowledge yang ada agar seragam.
- Normalisasi
Setelah knowledge telah dilakukan pembersihan tahap 1 (tahap awal), langkah selanjutnya adalah normalisasi. Normalisasi dilakukan untuk mengubah kata yang tidak baku menjadi kata baku. Dalam knowledge asli hal ini cukup tough karena setiap orang memiliki jenis tulis yang berbeda mulai dari singkatan sampai menggunakan bahasa yang tidak terdaftar di KBBI.
2. Stopwords
Stopwords adalah kata-kata umum yang sering muncul dalam teks namun tidak memberikan nilai tambah signifikan dalam analisis teks atau pemrosesan bahasa alami. Pada tahap ini dilakukan teknik untuk menghilangkan kata yang tidak memiliki bobot tersebut. Stopwords dapat diabaikan dalam analisis teks karena mereka tidak membawa makna atau informasi spesifik tentang konten teks yang sedang diproses. Pada tahap ini digunakan library Sastrawi untuk membuat stopwords.
3. Tokenized
Pada tahap ini dilakukan cut up (pemisahan) unsur kalimat menjadi unsur kata. Dalam konteks Pure Language Processing (NLP), setiap token ini dapat diolah lebih lanjut, seperti dianalisis untuk makna, diproses untuk entitas, atau digunakan untuk pelabelan dan klasifikasi teks.
4. Stemming
Setelah tiap kalimat dalam baris diubah mejadi simbil tiap huruf, stemming berfungsi untuk mengubah kata tidak baku menjadi kata baku sesuai dengan library Sastrawi. Stemming adalah proses mengurangi kata-kata ke bentuk dasarnya atau akarnya. Dalam sentiment evaluation. Perlu dicatat bahwa pada proses memakan waktu yang cukup lama.
5. Translate
Coment yang sudah dilakukan stemming dilanjutkan untuk ditranslate ke dalam bahasa inggris. Hal ini dilakukan agar saat menentukan label sentiment bisa mudah menggunakan textblob (yang aman akan lebih highly effective mengguakan bahasa inggris).
6. Labeling
Tahap ini adalah melakukan labeling terhadap setiap kontent berdasarkan pemrosesan yang dilakuak sebelumnya.
data_comment = checklist(knowledge['comment_english'])
polaritas = 0standing = []
total_positif = total_negatif = total_netral = whole = 0
for i, remark in enumerate(data_comment):
evaluation = TextBlob(remark)
polaritas += evaluation.polarity
if evaluation.sentiment.polarity > 0.0:
total_positif += 1
standing.append('Positif')
elif evaluation.sentiment.polarity == 0.0:
total_netral += 1
standing.append('Netral')
else:
total_negatif += 1
standing.append('Negatif')
whole += 1
print(f'Hasil Analisis Information:nPositif = {total_positif}nNetral = {total_netral}nNegatif = {total_negatif}')
print(f'nTotal Information : {whole}')
Hasil dari code tersebut akan menghasikan himpunan standing/label dari tiap baris atara positif, netral, dan negatif.
Adapun kata yang populer pada semua dataset adalah sebagai berikut
Dari knowledge tersebut nampak kata Snady, faktanya di episode 4 sandy memang tim sandy berhasil memenagkan recreation pertama. Terdapat juga kata maxwell dimana dia dan tumnya harus tereliminasi karena recreation sebelumnya.
Tahap selanjutnya adalah menyiapkan knowledge yang benar benar bersih dan siap digunakan untuk analisis dan pemodelan. Masalah disini muncul ketika library translate ternyata memiliki batasan sehingga dari sekitar 2.000 knowledge hanya ada ukuran 160 knowledge yang bisa ditranslate dan digunakan analisis.