Mohon tunggu...
Ruslan Effendi
Ruslan Effendi Mohon Tunggu... Akuntan - Pemerhati Anggaran, Politik Ekonomi, Bahasa

Penulis pada International Journal of Public Administration

Selanjutnya

Tutup

Artificial intelligence Pilihan

Machine Learning: NTLK vs spaCY, mana lebih unggul?

4 Januari 2025   06:07 Diperbarui: 4 Januari 2025   06:07 51
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.
Lihat foto
Sumber:  Olahan penulis

Dalam NLTK, preprocessing teks memerlukan beberapa langkah, termasuk tokenisasi menggunakan word_tokenize:

  • def preprocess_text(text):
  •     text = re.sub(r'[^a-zA-Z0-9\s]', '', text)  # Menghapus karakter non-alfanumerik
  •     tokens = word_tokenize(text.lower())  # Tokenisasi
  •     return tokens

Sebaliknya, spaCy menggunakan objek doc untuk memproses teks, yang secara otomatis menangani tokenisasi dan penghapusan stop words.

  • def preprocess_text(text):
  •     text = re.sub(r'[^a-zA-Z0-9\s]', '', text)  # Menghapus karakter non-alfanumerik
  •     doc = nlp(text.lower())  # Menggunakan spaCy untuk memproses teks
  •     return [token.text for token in doc if not token.is_stop and not token.is_punct]

Identifikasi Emosi

Kedua pustaka memiliki fungsi yang mirip untuk mengidentifikasi emosi, tetapi pendekatan spaCy lebih terintegrasi dengan pemrosesan teks yang lebih canggih. Berikut adalah contoh fungsi identifikasi emosi.

  • def identify_emotions(text):
  •     tokens = preprocess_text(text)
  •     identified_emotions = set()
  •     for emotion, keywords in emosi_cowen.items():
  •         for keyword in keywords:
  •             if any(keyword in token for token in tokens):
  •                 identified_emotions.add(emotion)
  •     return list(identified_emotions)

Ekstraksi Fitur

Kedua pustaka menggunakan TfidfVectorizer dari sklearn untuk ekstraksi fitur, menunjukkan bahwa mereka dapat digunakan bersama dengan alat pembelajaran mesin yang sama.

  • vectorizer = TfidfVectorizer()
  • X = vectorizer.fit_transform(data['respon'])

 Evaluasi Model

Proses evaluasi model sama untuk kedua pustaka, menunjukkan bahwa meskipun pendekatan pemrosesan teks berbeda, mereka dapat digunakan dalam konteks yang sama untuk membangun dan mengevaluasi model pembelajaran mesin:

  • print(classification_report(y_test, y_pred))
  • print(confusion_matrix(y_test, y_pred))

Mana lebih unggul?

NLTK dan spaCy memiliki keunggulan masing-masing dalam pembelajaran mesin, tergantung pada kebutuhan pengguna. NLTK, yang dirancang untuk penelitian dan pendidikan, menawarkan fleksibilitas yang tinggi dan menyediakan berbagai alat untuk eksperimen dalam pemrosesan bahasa alami (NLP). Dengan koleksi algoritma dan fungsi yang luas, NLTK memungkinkan pengguna untuk melakukan berbagai tugas seperti tokenisasi, stemming, dan analisis semantik. Dokumentasi yang komprehensif dan banyak tutorial juga menjadikannya pilihan yang baik untuk pemula. Namun, NLTK cenderung lebih lambat dibandingkan spaCy, terutama saat memproses data dalam jumlah besar, dan lebih cocok untuk eksperimen akademis daripada aplikasi produksi.

Di sisi lain, spaCy dirancang untuk kecepatan dan efisiensi, menjadikannya ideal untuk aplikasi yang memerlukan pemrosesan teks yang cepat. Dengan pendekatan berbasis objek, spaCy memudahkan eksplorasi dan penggunaan, karena setiap fungsi mengembalikan objek yang kaya informasi. Selain itu, spaCy menyediakan model terlatih untuk berbagai tugas NLP, seperti pengenalan entitas dan analisis sintaksis. Meskipun sangat efisien, spaCy mungkin memiliki kurva pembelajaran yang lebih curam bagi pemula dan mungkin tidak menawarkan fleksibilitas yang sama seperti NLTK untuk eksperimen. Secara keseluruhan, pengguna disarankan untuk memilih NLTK jika ingin belajar dasar-dasar NLP dan melakukan eksperimen akademis, sementara spaCy lebih cocok untuk mereka yang membutuhkan alat yang cepat dan efisien untuk aplikasi produksi dan pemrosesan teks yang lebih besar.

HALAMAN :
  1. 1
  2. 2
  3. 3
Mohon tunggu...

Lihat Konten Artificial intelligence Selengkapnya
Lihat Artificial intelligence Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun