Klasifikasi Ulasan Produk (Positif/Negatif) dengan Naive Bayes
Proyek ini membahas cara membangun model klasifikasi sentimen (positif atau negatif) dari ulasan produk menggunakan algoritma Naive Bayes. Cocok untuk skripsi, tugas akhir, atau project AI yang dibimbing oleh ITS Academics atau dibantu oleh jasa joki skripsi.
Pendahuluan
Analisis sentimen atau klasifikasi ulasan merupakan salah satu aplikasi NLP yang populer, terutama dalam e-commerce. Dengan metode Naive Bayes, kita bisa mengklasifikasikan apakah suatu ulasan produk bersifat positif atau negatif. Proyek ini cocok untuk skripsi atau tugas akhir, khususnya dengan bimbingan dari ITS Academics atau melalui layanan jasa joki skripsi.
Dataset
Dataset terdiri dari dua kolom utama: teks ulasan dan label sentimen.
| Fitur | Deskripsi |
|---|---|
| review | Teks ulasan dari pengguna |
| label | Positif (1) atau Negatif (0) |
Metode Naive Bayes
Naive Bayes bekerja berdasarkan Teorema Bayes dengan asumsi independensi antar fitur:
Dalam konteks klasifikasi teks, digunakan varian Multinomial Naive Bayes.
Implementasi Python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report, confusion_matrix
# Dataset contoh
data = {
'review': [
'Produk ini sangat bagus dan berkualitas',
'Sangat kecewa dengan produk ini',
'Pelayanan cepat dan memuaskan',
'Barang rusak dan tidak sesuai',
'Top banget, pasti beli lagi',
'Tidak direkomendasikan, buruk kualitasnya'
],
'label': [1, 0, 1, 0, 1, 0]
}
df = pd.DataFrame(data)
# Preprocessing
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(df['review'])
y = df['label']
# Split data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Training
model = MultinomialNB()
model.fit(X_train, y_train)
# Evaluasi
y_pred = model.predict(X_test)
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))
Visualisasi Frekuensi Kata
import matplotlib.pyplot as plt
import seaborn as sns
word_freq = pd.DataFrame({'word': vectorizer.get_feature_names_out(), 'count': X.toarray().sum(axis=0)})
word_freq = word_freq.sort_values('count', ascending=False).head(10)
sns.barplot(x='count', y='word', data=word_freq)
plt.title('10 Kata Paling Sering Muncul dalam Review')
plt.show()
Kesimpulan
Naive Bayes adalah metode sederhana namun efektif untuk klasifikasi sentimen ulasan produk. Proyek ini dapat dikembangkan lebih lanjut dengan dataset nyata, preprocessing lanjutan, atau model NLP lainnya. Cocok dijadikan skripsi atau tugas akhir bersama ITS Academics atau melalui jasa joki skripsi profesional.
Apa Reaksi Anda?