Lewati ke konten utama

Memahami Klasifikasi Teks di Python

Pelajari apa itu klasifikasi teks, cara kerjanya, dan contoh penggunaan yang sukses. Jelajahi contoh end-to-end membangun pipeline prapemrosesan teks diikuti model klasifikasi teks di Python.
Diperbarui 28 Sep 2026  · 12 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Data teks adalah salah satu jenis data yang paling umum digunakan perusahaan saat ini, namun karena tidak memiliki struktur yang jelas, mengekstrak wawasan dari data teks bisa sulit dan memakan waktu. Menangani data teks termasuk dalam ranah Pemrosesan Bahasa Alami (Natural Language Processing), salah satu subbidang kecerdasan buatan. 

Natural Language Processing (NLP) adalah bidang ilmu komputer dan kecerdasan buatan yang menelaah bagaimana komputer berinteraksi dengan bahasa manusia serta bagaimana memprogram komputer untuk memproses dan menganalisis data bahasa alami dalam jumlah besar.

NLP digunakan dalam banyak cara, seperti menjawab pertanyaan secara otomatis, membuat ringkasan teks, menerjemahkan teks dari satu bahasa ke bahasa lain, dan sebagainya. Riset NLP juga dilakukan di bidang-bidang seperti ilmu kognitif, linguistik, dan psikologi. Klasifikasi teks adalah salah satu use case NLP tersebut. 

Blog ini akan membahas use case klasifikasi teks. Kami juga menyertakan contoh end-to-end tentang cara membangun pipeline prapemrosesan teks diikuti model klasifikasi teks di Python.

Jika Anda ingin mempelajari lebih lanjut tentang pemrosesan bahasa alami, jalur Natural Language Processing in Python dan Natural Language Processing in R kami akan membantu. Anda akan memperoleh keterampilan inti NLP yang dibutuhkan untuk mengubah data teks menjadi wawasan berharga. Anda juga akan diperkenalkan pada pustaka NLP Python populer, termasuk NLTK, scikit-learn, spaCy, dan SpeechRecognition.

Apa itu Klasifikasi Teks?

Klasifikasi teks adalah tugas NLP yang umum digunakan untuk menyelesaikan masalah bisnis di berbagai bidang. Tujuan klasifikasi teks adalah mengategorikan atau memprediksi kelas dari dokumen teks yang belum pernah dilihat, sering kali dengan bantuan pembelajaran mesin terawasi.

Mirip dengan algoritma klasifikasi yang dilatih pada dataset tabular untuk memprediksi sebuah kelas, klasifikasi teks juga menggunakan pembelajaran mesin terawasi. Fakta bahwa data masukannya berupa teks adalah pembedaan utama antara keduanya.

Anda juga dapat melakukan klasifikasi teks tanpa menggunakan pembelajaran mesin terawasi. Alih-alih algoritma, sistem berbasis aturan manual dapat dirancang untuk menjalankan tugas klasifikasi teks. Kita akan membandingkan dan meninjau kelebihan dan kekurangan sistem klasifikasi berbasis aturan dan berbasis pembelajaran mesin pada bagian berikutnya.

Pipeline Klasifikasi Teks

Sumber Gambar

Jika Anda ingin mempelajari lebih lanjut tentang pembelajaran mesin terawasi, lihat artikel terpisah kami.

Use Case dan Aplikasi Klasifikasi Teks

Klasifikasi spam

Ada banyak use case praktis untuk klasifikasi teks di berbagai industri. Misalnya, filter spam adalah aplikasi umum yang menggunakan klasifikasi teks untuk memilah email ke dalam kategori spam dan non-spam. 

Klasifikasi Spam

Sumber Gambar

Mengklasifikasikan artikel berita dan blog

Use case lain adalah menetapkan dokumen teks secara otomatis ke kategori yang telah ditentukan. Model pembelajaran mesin terawasi dilatih pada data berlabel, yang mencakup teks mentah dan targetnya. Setelah model dilatih, model digunakan di produksi untuk memperoleh kategori (label) pada data baru yang belum pernah dilihat (artikel/blog yang ditulis di masa mendatang).

Penyaring Artikel Berita

Sumber Gambar

Mengkategorikan permintaan dukungan pelanggan

Sebuah perusahaan dapat menggunakan klasifikasi teks untuk secara otomatis mengategorikan permintaan dukungan pelanggan berdasarkan topik atau untuk memprioritaskan dan mengarahkan permintaan ke departemen yang tepat. 

Permintaan Dukungan Pelanggan

Sumber Gambar

Deteksi ujaran kebencian

Dengan lebih dari 1,7 miliar pengguna aktif harian, Facebook tak terelakkan memiliki konten di situs yang melanggar aturan. Ujaran kebencian termasuk dalam konten yang tidak diinginkan ini. 

Facebook mengatasi masalah ini dengan meminta peninjauan manual terhadap kiriman yang telah diidentifikasi sebagai ujaran kebencian oleh pengklasifikasi teks AI. Kiriman yang ditandai oleh AI diperiksa dengan cara yang sama seperti kiriman yang dilaporkan pengguna. Faktanya, hanya dalam tiga bulan pertama tahun 2020, platform ini menghapus 9,6 juta item konten yang telah diklasifikasikan sebagai ujaran kebencian.

Pengklasifikasi Teks Facebook

Sumber Gambar

Jenis Sistem Klasifikasi Teks

Secara umum ada dua jenis sistem klasifikasi teks: berbasis aturan dan berbasis pembelajaran mesin.

Klasifikasi teks berbasis aturan

Teknik berbasis aturan menggunakan seperangkat aturan bahasa yang disusun secara manual untuk mengategorikan teks ke dalam kategori atau kelompok. Aturan-aturan ini menginstruksikan sistem untuk mengklasifikasikan teks ke kategori tertentu berdasarkan isi teks dengan menggunakan elemen tekstual yang relevan secara semantik. Setiap aturan terdiri dari anteseden atau pola dan kategori yang diproyeksikan.

Misalnya, bayangkan Anda memiliki banyak artikel baru, dan tujuan Anda adalah menetapkannya ke kategori yang relevan seperti Olahraga, Politik, Ekonomi, dan sebagainya. 

Dengan sistem klasifikasi berbasis aturan, Anda akan meninjau beberapa dokumen secara manual untuk menyusun aturan linguistik seperti ini:

  • Jika dokumen memuat kata seperti money, dollar, GDP, atau inflation, maka dokumen tersebut termasuk kelompok (kelas) Politik. 

Sistem berbasis aturan dapat disempurnakan seiring waktu dan mudah dipahami manusia. Namun, ada beberapa kelemahan dari pendekatan ini. 

Pertama, sistem ini menuntut keahlian mendalam di bidangnya. Penyusunan aturan untuk sistem yang rumit bisa sulit dan sering memerlukan riset serta pengujian ekstensif, sehingga sangat memakan waktu. 

Mengingat penambahan aturan baru dapat mengubah hasil aturan yang sudah ada, sistem berbasis aturan juga sulit dipelihara dan tidak mudah diskalakan.

Klasifikasi teks berbasis pembelajaran mesin

Klasifikasi teks berbasis pembelajaran mesin adalah masalah pembelajaran mesin terawasi. Ia mempelajari pemetaan data masukan (teks mentah) ke label (juga dikenal sebagai variabel target). Ini serupa dengan masalah klasifikasi non-teks di mana kita melatih algoritma klasifikasi terawasi pada dataset tabular untuk memprediksi sebuah kelas, dengan pengecualian bahwa pada klasifikasi teks, data masukan berupa teks mentah alih-alih fitur numerik. 

Seperti pembelajaran mesin terawasi lainnya, klasifikasi teks berbasis pembelajaran mesin memiliki dua fase: pelatihan dan prediksi.

Klasifikasi Teks Pembelajaran Mesin

Sumber Gambar

Fase pelatihan

Sebuah algoritma pembelajaran mesin terawasi dilatih pada dataset berlabel selama fase pelatihan. Di akhir proses ini, kita mendapatkan model terlatih yang dapat digunakan untuk memperoleh prediksi (label) pada data baru yang belum pernah dilihat.

Fase prediksi

Setelah model pembelajaran mesin dilatih, model dapat digunakan untuk memprediksi label pada data baru yang belum pernah dilihat. Ini biasanya dilakukan dengan menerapkan model terbaik dari fase sebelumnya sebagai API di server. 

Pipeline Prapemrosesan Teks

Prapemrosesan data teks adalah langkah penting dalam setiap tugas pemrosesan bahasa alami. Langkah ini membantu membersihkan dan menyiapkan data teks untuk pemrosesan atau analisis lebih lanjut. 

Pipeline prapemrosesan teks adalah rangkaian langkah pemrosesan yang diterapkan pada data teks mentah untuk menyiapkannya agar dapat digunakan dalam tugas-tugas pemrosesan bahasa alami. 

Langkah-langkah dalam pipeline prapemrosesan teks dapat bervariasi, namun umumnya mencakup tokenisasi, penghapusan stop word, stemming, dan lemmatization. Langkah-langkah ini membantu mengurangi ukuran data teks dan juga meningkatkan akurasi tugas NLP seperti klasifikasi teks dan ekstraksi informasi.

Data teks sulit diproses karena tidak terstruktur dan sering kali mengandung banyak noise. Noise ini bisa berupa salah eja, kesalahan tata bahasa, dan pemformatan non-standar. Pipeline prapemrosesan teks bertujuan membersihkan noise ini agar data teks lebih mudah dianalisis.


Penambangan Teks

Sumber Teks

Ingin mempelajari lebih lanjut? Lihat jalur Text Mining with R kami. 

Ekstraksi Fitur

Dua metode paling umum untuk mengekstrak fitur dari teks atau dengan kata lain mengonversi data teks (string) menjadi fitur numerik agar model pembelajaran mesin dapat dilatih adalah: Bag of Words (alias CountVectorizer) dan Tf-IDF. 

Bag of Words

Model bag of words (BoW) adalah cara sederhana merepresentasikan data teks sebagai fitur numerik. Caranya dengan membuat kosakata dari kata-kata yang dikenal di korpus lalu membuat vektor untuk setiap dokumen yang memuat hitungan seberapa sering tiap kata muncul.

Bag of Words

Sumber Gambar

TF-IDF

TF-IDF adalah singkatan dari term frequency-inverse document frequency, dan merupakan cara lain merepresentasikan teks sebagai fitur numerik. Ada beberapa kekurangan pada model Bag of Words (BoW) yang diatasi oleh Tf-IDF. Kita tidak akan membahas rinciannya di artikel ini, tetapi jika Anda ingin mengeksplorasi konsep ini lebih lanjut, lihat kursus Introduction to Natural Language Processing in Python kami.

Model TF-IDF berbeda dari model bag of words karena memperhitungkan frekuensi kata dalam dokumen serta inverse document frequency. Ini berarti model TF-IDF lebih mungkin mengidentifikasi kata-kata penting dalam suatu dokumen dibandingkan model bag of words.

Contoh Klasifikasi Teks End-to-End di Python

Mengimpor Dataset

Pertama, impor dataset langsung dari tautan GitHub ini. SMS Spam Collection adalah dataset yang berisi 5.574 pesan SMS berbahasa Inggris beserta label Spam atau Ham (bukan spam). Tujuan kita adalah melatih model pembelajaran mesin yang akan belajar dari teks SMS dan labelnya sehingga mampu memprediksi kelas pesan SMS.

# reading data

import pandas as pd

data = pd.read_csv('https://raw.githubusercontent.com/mohitgupta-omg/Kaggle-SMS-Spam-Collection-Dataset-/master/spam.csv', encoding='latin-1')

data.head()

SpamHam Unprocessed

Setelah membaca dataset, perhatikan bahwa ada beberapa kolom ekstra yang tidak kita perlukan. Kita hanya membutuhkan dua kolom pertama. Mari kita hapus kolom sisanya dan ganti nama dua kolom pertama.

# drop unnecessary columns and rename cols

data.drop(['Unnamed: 2', 'Unnamed: 3', 'Unnamed: 4'], axis=1, inplace=True)

data.columns = ['label', 'text']

data.head()

SpamHam Preprocessing

Exploratory Data Analysis (EDA)

Mari lakukan EDA dasar untuk melihat apakah ada nilai hilang pada dataset dan bagaimana keseimbangan targetnya.

# check missing values

data.isna().sum()

EDA

# check data shape

data.shape
>>> (5572, 2)
# check target balance

data['label'].value_counts(normalize = True).plot.bar()

SpamHam EDA

Prapemrosesan Teks

Di sinilah seluruh pembersihan teks dilakukan. Ini adalah loop yang mengiterasi semua 5.572 dokumen dan melakukan hal-hal berikut:

  • Menghapus semua karakter khusus
  • Mengonversi semua kata menjadi huruf kecil
  • Tokenisasi
  • Menghapus stopword
  • Lemmatization
# text preprocessing




# download nltk

import nltk

nltk.download('all')




# create a list text

text = list(data['text'])




# preprocessing loop

import re

from nltk.corpus import stopwords

from nltk.stem import WordNetLemmatizer

lemmatizer = WordNetLemmatizer()




corpus = []




for i in range(len(text)):

    r = re.sub('[^a-zA-Z]', ' ', text[i])

    r = r.lower()

    r = r.split()

    r = [word for word in r if word not in stopwords.words('english')]

    r = [lemmatizer.lemmatize(word) for word in r]

    r = ' '.join(r)

    corpus.append(r)




#assign corpus to data['text']

data['text'] = corpus

data.head()

Spam Ham Diproses 1.png

Pembagian train-test

Mari kita bagi dataset menjadi train dan test sebelum ekstraksi fitur.

# Create Feature and Label sets

X = data['text']

y = data['label']




# train test split (66% train - 33% test)

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=123)




print('Training Data :', X_train.shape)

print('Testing Data : ', X_test.shape)
>>> Training Data : (3733,)

>>> Testing Data :  (1839,)

Ekstraksi Fitur

Di sini, kita menggunakan model Bag of Words (CountVectorizer) untuk mengonversi teks yang sudah dibersihkan menjadi fitur numerik. Ini diperlukan untuk melatih model pembelajaran mesin.

# Train Bag of Words model

from sklearn.feature_extraction.text import CountVectorizer

cv = CountVectorizer()

X_train_cv = cv.fit_transform(X_train)

X_train_cv.shape
>>> (3733, 7020)

Pelatihan dan Evaluasi Model

Pada bagian ini, kita melatih model Logistic Regression dan mengevaluasi confusion matrix dari model yang telah dilatih.

# Training Logistic Regression model

from sklearn.linear_model import LogisticRegression

lr = LogisticRegression()

lr.fit(X_train_cv, y_train)




# transform X_test using CV

X_test_cv = cv.transform(X_test)




# generate predictions

predictions = lr.predict(X_test_cv)

predictions
>>> array(['ham', 'spam', 'ham', ..., 'ham', 'ham', 'spam'], dtype=object)
# confusion matrix

import pandas as pd

from sklearn import metrics

df = pd.DataFrame(metrics.confusion_matrix(y_test,predictions), index=['ham','spam'], columns=['ham','spam'])

df

Tabel SpamHam

Lihat buku kerja DataLab lengkap untuk detail lebih lanjut.

Kesimpulan

NLP masih menjadi area penelitian dan pengembangan yang aktif, dengan banyak universitas dan perusahaan yang mengembangkan algoritma serta aplikasi baru. NLP adalah bidang interdisipliner, dengan peneliti yang berasal dari berbagai latar belakang, termasuk ilmu komputer, linguistik, psikologi, dan ilmu kognitif.

Klasifikasi teks adalah tugas yang kuat dan banyak digunakan dalam NLP yang dapat digunakan untuk secara otomatis mengategorikan atau memprediksi kelas dokumen teks yang belum pernah dilihat, sering kali dengan bantuan pembelajaran mesin terawasi. 

Metode ini tidak selalu akurat, namun bila digunakan dengan benar, dapat menambah banyak nilai pada analitik Anda. Ada banyak cara dan algoritma untuk menyusun pengklasifikasi teks, dan tidak ada satu pendekatan pun yang terbaik. Penting untuk bereksperimen dan menemukan apa yang paling cocok untuk data serta tujuan Anda.

FAQ Klasifikasi Teks

Bisakah Klasifikasi Teks digunakan jika ada lebih dari dua label?

Ya, jika hanya ada dua label, maka Anda akan menggunakan algoritma klasifikasi biner. Jika ada lebih dari dua label, Anda harus menggunakan algoritma klasifikasi multi-kelas.

Apakah Klasifikasi Teks merupakan tugas NLP?

Ya, NLP adalah bidang yang sangat luas. Klasifikasi teks adalah salah satu use case fundamental NLP, dengan aplikasi di berbagai industri.

Apakah Klasifikasi Teks merupakan masalah pembelajaran mesin terawasi?

Sistem klasifikasi teks juga bisa berbasis aturan, tetapi jelas semakin ditinggalkan karena sulit dipelihara dan diskalakan. Sistem berbasis pembelajaran mesin untuk tugas klasifikasi teks menggunakan pembelajaran mesin terawasi.

Apa itu Pemrosesan Bahasa Alami?

Natural Language Processing (NLP) adalah bidang ilmu komputer dan kecerdasan buatan yang berfokus pada interaksi antara komputer dan bahasa manusia (alami), khususnya bagaimana memprogram komputer untuk memproses dan menganalisis data bahasa alami dalam jumlah besar.

Apakah Klasifikasi Teks sama dengan analisis sentimen?

Analisis sentimen adalah salah satu contoh sistem klasifikasi teks. Namun, seperti namanya, analisis sentimen biasanya dilakukan ketika labelnya adalah suatu jenis sentimen (positif atau negatif, senang atau sedih, dan sebagainya).

Bisakah Klasifikasi Teks dilakukan tanpa menggunakan pembelajaran mesin?

Ya, kita juga dapat menggunakan sistem berbasis aturan untuk klasifikasi teks.

Bisakah kita menggunakan deep learning untuk Klasifikasi Teks?

Ya, kita dapat menggunakan algoritma pembelajaran mendalam alih-alih pembelajaran mesin. Lihat kursus hebat tentang Recurrent Neural Networks (RNN) for Language Modeling in Python untuk mempelajari lebih lanjut tentang NLP dan Deep Learning. Jika Anda ingin membangun Model Klasifikasi Teks menggunakan TensorFlow, lihat Studi Kasus TensorFlow 2.0 di Datacamp ini.

Apa algoritma terbaik untuk Klasifikasi Teks?

Tidak ada yang namanya algoritma terbaik. Biasanya, algoritma naive bayes terlihat berkinerja baik pada data berdimensi tinggi (teks).

Apakah BERT digunakan untuk Klasifikasi Teks?

Ya, BERT, singkatan dari Bidirectional Encoder Representations from Transformers, berbasis arsitektur Transformers, sebuah model pembelajaran mendalam. Di antara banyak use case lainnya, BERT juga dapat digunakan untuk sistem klasifikasi teks. Lihat tutorial kami tentang NLP menggunakan BERT untuk detail lebih lanjut.

Apakah Klasifikasi Teks dan Text Mining adalah hal yang sama?

Tidak, Text Mining adalah proses mengubah teks tidak terstruktur menjadi format terstruktur untuk mengidentifikasi pola yang bermakna, sedangkan tujuan klasifikasi teks adalah mengategorikan atau memprediksi kelas dokumen teks yang belum pernah dilihat, sering kali dengan bantuan pembelajaran mesin terawasi.

Topik
Kecerdasan Buatan
Python

Kursus Teratas

Kursus

Text Mining dengan Bag-of-Words di R

4 jam
44.4K
Pelajari teknik bag of words untuk penambangan teks menggunakan R.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

Lihat SelengkapnyaLihat Selengkapnya