Skip to content

xmriz/EmotionNLP-TFX

Repository files navigation

Emotion Prediction (Natural Language Proccessing)

  • Nama: Ahmad Rizki
Deskripsi
Dataset Kaggle - Emotions Dataset for NLP
Masalah Proyek ini berfokus pada mendeteksi emosi seseorang dari teks yang diberikan. Tujuan utama adalah mengembangkan model machine learning yang mampu mengenali dan mengklasifikasikan teks berdasarkan enam emosi, yaitu Anger(0), Fear(1), Joy(2), Love(3), Sadness(4), dan Surprise(5), sehingga dapat memberikan wawasan tentang emosi yang terkandung dalam teks tersebut.
Solusi Machine Learning Pendekatan yang diambil untuk menyelesaikan masalah ini melibatkan pengembangan algoritma machine learning. Model akan dilatih menggunakan dataset yang telah dianotasi untuk mengenali pola-pola tertentu yang mengindikasikan emosi dalam teks. Proses ini akan memungkinkan model untuk belajar dan dapat mengklasifikasikan teks baru berdasarkan pengalaman yang diperoleh selama pelatihan. Solusi model machine learning yang dikembangkan untuk mendeteksi emosi dari teks memberikan manfaat signifikan kepada pengguna dan stakeholder. Beberapa manfaat utama melibatkan:
  1. Pengenalan Emosi yang Akurat: Model ini memberikan kemampuan untuk mengenali emosi dengan akurasi tinggi (85%), memungkinkan pengguna mendapatkan wawasan yang lebih mendalam tentang konten teks yang mereka analisis. Ini bermanfaat dalam pemahaman konten sosial media, ulasan produk, atau bahkan analisis sentiment terhadap berita.
  2. Personalisasi Pengalaman Pengguna: Dengan kemampuan model untuk mengklasifikasikan emosi, aplikasi atau platform yang menggunakan model ini dapat mengadaptasi pengalaman pengguna berdasarkan emosi yang terdeteksi. Misalnya, menyesuaikan rekomendasi konten atau menawarkan saran yang sesuai dengan emosi yang terdeteksi.
  3. Analisis Sentiment dalam Bisnis: Stakeholder bisnis dapat menggunakan model ini untuk menganalisis sentimen pelanggan terhadap produk atau layanan. Pengenalan emosi pelanggan dapat membantu perusahaan mengidentifikasi area untuk perbaikan atau mengevaluasi efektivitas kampanye pemasaran.
  4. Pemantauan dan Tanggapan Cepat: Dengan model ini diimplementasikan, stakeholder dapat secara otomatis memantau dan mengklasifikasikan teks dalam waktu nyata, memungkinkan tanggapan cepat terhadap perubahan sentimen atau respons publik terhadap suatu peristiwa atau kampanye.
Metode Pengolahan
  1. Data Ingestion: Dataset diunduh dari Kaggle, dibagi 80% data latih dan 20% data evaluasi.
  2. Data Validation: Melihat statistik data untuk memastikan kualitasnya.
  3. Data Schema: Membuat schema untuk mendeteksi anomali pada data.
  4. Data Preprocessing: Melakukan transformasi data, termasuk pengubahan nama fitur dan penyederhanaan isi teks.
  5. Tuning Hyperparameter: Eksperimen untuk memilih parameter terbaik (num_layers, num_units, learning_rate) dengan callbacks.
  6. Training Model: Membuat arsitektur neural network dan melatih model dengan parameter hasil tuning.
  7. Analisis dan Validasi: Membuat evaluator untuk precision, recall, dan accuracy, serta visualisasi metrik.
  8. Deployment: Menyimpan model menggunakan TF Serving untuk produksi.
Arsitektur Model Model yang digunakan adalah neural network. Berbagai parameter, seperti learning rate, jumlah layers, dan jumlah hidden units, disesuaikan dan dituning untuk mencapai akurasi optimal. Tuning ini melibatkan eksperimen berulang dan evaluasi kinerja model pada dataset evaluasi.
Metrik Evaluasi Metrik evaluasi yang digunakan adalah loss='sparse_categorical_crossentropy', metrics=['accuracy']. Metrik ini memberikan informasi tentang akurasi model dalam mengklasifikasikan teks berdasarkan enam emosi. Penggunaan metrik ini membantu dalam mengukur sejauh mana model dapat membedakan antara kelas emosi dengan tepat.
Performa Model Model yang dihasilkan menunjukkan performa yang baik, dengan akurasi terhadap data uji sebesar 0.85 dan nilai loss sebesar 0.73. Akurasi yang lumayan tinggi pada data uji menunjukkan bahwa model mampu dengan baik mengenali emosi dalam teks berdasarkan pola-pola yang telah dipelajari selama proses pelatihan. Nilai loss yang rendah menunjukkan efisiensi model dalam mengurangi kesalahan selama proses klasifikasi. Performa model juga ditunjukkan dengan model yang telah di deploy mampu mendeteksi sample teks yang diberikan dengan akurat.
Opsi Deployment Proyek ini di-deploy menggunakan container Docker yang di-push ke platform Railway. Dengan menggunakan Docker, model machine learning dan dependensinya dikemas bersama dalam sebuah container, memastikan portabilitas dan konsistensi lingkungan di berbagai platform. Setelah container Docker disiapkan, proyek ini di-deploy secara online pada platform Railway
Web App emotion-model
Monitoring Proses monitoring dilakukan menggunakan Prometheus yang dijalankan dalam sebuah container Docker. Prometheus membantu dalam mengumpulkan metrik kinerja dari aplikasi dan lingkungan container. Integrasi Prometheus dengan Grafana memberikan visualisasi yang interaktif dan informatif terhadap performa model. Grafana memungkinkan pengguna untuk memonitor dan menganalisis metrik-metrik seperti kecepatan inferensi, penggunaan sumber daya, dan lainnya

Screenshot

Model Deployment Prometheus Grafana

About

Predict Emotion from Text with TensorFlow Extended (End-to-end ML Pipelines)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published