Pengertian Naive Bayes (NB)
Naive Bayes adalah sebuah metode klasifikasi berbasis teori probabilitas yang menggunakan Teorema Bayes. Disebut “naive” karena metode ini mengasumsikan bahwa setiap fitur (kata atau atribut) saling independen, padahal dalam kenyataan tidak selalu demikian. Meski asumsi tersebut sederhana, Naive Bayes sangat efektif untuk banyak kasus klasifikasi teks.
Konsep Utama Naive Bayes
Naive Bayes menghitung probabilitas suatu data termasuk ke dalam kelas tertentu berdasarkan:
-
Probabilitas awal (prior probability)
-
Hubungan antara fitur dan kelas (likelihood)
-
Probabilitas total semua kelas (evidence)
Secara matematis:
P(C∣X)=P(X∣C)⋅P(C)P(X)P(C|X) = \frac{P(X|C)\cdot P(C)}{P(X)}
Di mana:
-
C = kelas (positif, negatif, netral)
-
X = fitur (kata dalam ulasan)
-
P(C|X) = probabilitas data termasuk kelas C
-
P(X|C) = probabilitas fitur muncul di kelas C
Kelebihan Naive Bayes
-
Cepat dan efisien, baik untuk training maupun testing.
-
Bekerja sangat baik pada data berdimensi tinggi (misalnya teks).
-
Tidak membutuhkan jumlah data yang besar untuk kinerja optimal.
-
Mudah diimplementasikan.
Kekurangan Naive Bayes
-
Asumsi independensi antar fitur sering tidak realistis.
-
Kurang cocok untuk data yang memiliki korelasi tinggi antar kata.
-
Hasil bisa bias jika data tidak seimbang (imbalance).
Aplikasi Naive Bayes
-
Klasifikasi sentimen ulasan produk
-
Filtering spam email
-
Klasifikasi dokumen
-
Deteksi topik
Pengertian SVM (Support Vector Machine)
Support Vector Machine (SVM) adalah metode klasifikasi yang mencari hyperplane terbaik untuk memisahkan data ke dalam dua atau lebih kelas. Hyperplane adalah garis (2D) atau bidang (3D atau lebih) yang membagi data. SVM bekerja dengan cara memaksimalkan margin, yaitu jarak antara hyperplane dan titik data terdekat yang disebut support vectors. SVM secara konsep lebih jauh dan kompleks dibanding Naive Bayes, dan sangat efektif untuk data berdimensi tinggi seperti teks.
Konsep Utama SVM
-
Tujuan SVM adalah mencari hyperplane optimal yang memiliki margin paling besar.
-
Semakin besar margin, semakin baik model dalam menggeneralisasi data baru.
-
Jika data tidak dapat dipisahkan secara linear, SVM menggunakan Kernel Trick untuk memetakan data ke dimensi lebih tinggi agar dapat dipisahkan.
Jenis Kernel umum pada SVM
-
Linear Kernel — paling sering dipakai untuk teks.
-
Polynomial Kernel
-
RBF (Radial Basis Function) Kernel
-
Sigmoid Kernel
Untuk klasifikasi teks, LinearSVC biasanya menghasilkan akurasi terbaik.
Kelebihan SVM
-
Sangat akurat pada data berdimensi tinggi.
-
Stabil terhadap noise.
-
Dapat digunakan pada data tidak linear (melalui kernel).
-
Tidak mudah overfitting.
Kekurangan SVM
-
Waktu komputasi cukup tinggi pada dataset besar.
-
Pemilihan parameter kernel cukup rumit.
-
Kurang cocok untuk dataset dengan jumlah data sangat besar (jutaan sampel).
Aplikasi SVM
-
Klasifikasi sentimen
-
Deteksi wajah dan pengenalan gambar
-
Deteksi intrusi jaringan
-
Sistem rekomendasi
-
Text categorization
3. Perbedaan Utama Naive Bayes dan SVM
| Aspek | Naive Bayes | SVM |
|---|---|---|
| Pendekatan | Probabilistik | Geometris/Margin-based |
| Kecepatan | Sangat cepat | Lebih lambat |
| Akurasi | Bagus | Sangat tinggi |
| Dimensi data | Cocok untuk data tinggi | Sangat cocok untuk data tinggi |
| Cocok untuk | Baseline, data sederhana | Produksi, data kompleks |
Klasifikasi Sentimen Ulasan Produk Online dengan Naive Bayes dan SVM
Klasifikasi sentimen digunakan untuk menentukan apakah suatu ulasan produk bersifat positif, negatif, atau netral. Dua algoritma yang umum dipakai adalah Naive Bayes dan SVM karena keduanya efektif dalam memproses text data.
Alur Umum Klasifikasi Sentimen
Langkah-langkahnya:
-
Pengumpulan Data
-
Ulasan produk dari marketplace atau dataset publik.
-
Label sentimen: positif, negatif, atau netral.
-
-
Preprocessing Teks
-
Lowercase
-
Tokenisasi
-
Stopword removal
-
Stemming / Lemmatization
-
Cleaning (hapus angka, tanda baca, simbol)
-
-
Ekstraksi Fitur
-
TF-IDF (paling umum)
-
Bag of Words (BoW)
-
n-grams (opsional)
-
-
Training Model
-
Model Naive Bayes (MultinomialNB)
-
Model SVM (LinearSVC / SVC kernel linear)
-
-
Evaluasi
-
Accuracy
-
Precision, Recall, F1-score
-
Confusion matrix
-
Naive Bayes untuk Sentimen
Kelebihan
-
Cepat dan ringan.
-
Cocok untuk dataset teks besar.
-
Bagus untuk baseline.
Kekurangan
-
Asumsi independence antar kata sering tidak terpenuhi.
-
Kurang akurat jika pola data kompleks.
Cocok untuk
-
Ulasan pendek dan sederhana.
-
Sistem real-time yang butuh kecepatan.
SVM untuk Sentimen
Kelebihan
-
Akurasi tinggi pada data teks.
-
Robust terhadap data berdimensi tinggi (TF-IDF).
-
Cenderung lebih stabil dibanding NB.
Kekurangan
-
Waktu training lebih lama.
-
Parameter tuning lebih rumit.
Cocok untuk
-
Dataset besar dengan variasi kata tinggi.
-
Klasifikasi teks skala industri.
4. Contoh Implementasi Python (Sklearn)
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.svm import LinearSVC
from sklearn.metrics import classification_report
# Contoh dataset
data = pd.read_csv(‘ulasan_produk.csv’) # kolom: ‘ulasan’, ‘sentimen’
# Preprocessing ringan (opsional tambahkan cleaning)
X = data[‘ulasan’]
y = data[‘sentimen’]
# Split data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# TF-IDF
vectorizer = TfidfVectorizer(ngram_range=(1,2), max_features=5000)
X_train_tfidf = vectorizer.fit_transform(X_train)
X_test_tfidf = vectorizer.transform(X_test)
# — Naive Bayes —
nb = MultinomialNB()
nb.fit(X_train_tfidf, y_train)
nb_pred = nb.predict(X_test_tfidf)
print(“=== Naive Bayes ===”)
print(classification_report(y_test, nb_pred))
# — SVM —
svm = LinearSVC()
svm.fit(X_train_tfidf, y_train)
svm_pred = svm.predict(X_test_tfidf)
print(“=== SVM ===”)
print(classification_report(y_test, svm_pred))
Hasil yang Umum Ditemukan
-
Naive Bayes sering memiliki akurasi 75–85%.
-
SVM sering mencapai 85–95% pada dataset teks yang rapi.
-
SVM biasanya unggul pada ulasan yang panjang dan ber-variasi.

Pada penelitian ini telah dilakukan analisis dan penerapan metode Naive Bayes dan Support Vector Machine (SVM) untuk melakukan klasifikasi sentimen pada ulasan produk online. Berdasarkan pembahasan yang telah disampaikan, dapat disimpulkan bahwa kedua metode memiliki kemampuan yang baik dalam mengolah data teks, terutama pada konteks analisis sentimen.
Naive Bayes menawarkan kecepatan dan kemudahan dalam proses pelatihan model, sehingga efektif digunakan sebagai pendekatan awal atau baseline. Namun, akurasinya cenderung lebih rendah dibandingkan SVM, terutama ketika data bersifat kompleks dan memiliki variasi kata yang tinggi. Di sisi lain, SVM mampu memberikan performa yang lebih unggul dengan memanfaatkan margin optimal dalam pemisahan kelas, meskipun membutuhkan waktu komputasi yang lebih besar.
Melalui hasil ini, dapat disimpulkan bahwa pemilihan metode klasifikasi sangat bergantung pada kebutuhan sistem, karakteristik data, serta tujuan analisis. Penelitian selanjutnya dapat mempertimbangkan penggunaan metode lain seperti Random Forest, LSTM, atau BERT, serta melakukan optimasi fitur dengan teknik word embedding untuk meningkatkan akurasi dan kinerja model yang dihasilkan.
Dengan demikian, penelitian ini diharapkan dapat memberikan kontribusi baik secara teoritis maupun praktis dalam bidang analisis sentimen dan pengolahan bahasa alami, serta menjadi dasar untuk pengembangan sistem analisis sentimen yang lebih cerdas dan efektif di masa mendatang.
