Tutorial spaCy: NLP Berskala Industri dengan Python

# spaCy: NLP Kelas Industri di Python spaCy adalah pustaka open-source untuk pemrosesan bahasa alami (NLP) yang dirancang untuk penggunaan produksi. Jika large language model unggul dalam menghasilka...

By Ruby Abdullah · · tutorial
spaCyNLPNamed Entity RecognitionText ProcessingPythonMachine Learning

spaCy: NLP Kelas Industri di Python

spaCy adalah pustaka open-source untuk pemrosesan bahasa alami (NLP) yang dirancang untuk penggunaan produksi. Jika large language model unggul dalam menghasilkan teks bebas, spaCy berfokus pada analisis teks yang cepat, deterministik, dan terstruktur: tokenisasi, penandaan kelas kata, dependency parsing, dan pengenalan entitas bernama. Tutorial ini membahas spaCy mulai dari instalasi hingga melatih model kustom, dengan satu contoh teks bisnis yang konsisten sepanjang pembahasan.

Apa Itu spaCy dan Posisinya

spaCy adalah pustaka Python yang mengubah teks mentah menjadi data linguistik terstruktur. Pustaka ini menyertakan model statistik terlatih untuk banyak bahasa dan menyediakan model objek yang rapi (Doc, Token, Span) untuk mengolah hasilnya. Pustaka ini ditulis dengan mempertimbangkan kinerja, sehingga mampu memproses teks dalam jumlah besar secara cepat di CPU.

spaCy vs. Large Language Model

LLM dan spaCy menyelesaikan masalah yang berbeda, dan dalam praktiknya keduanya sering digabungkan.

  • Deterministik: spaCy menghasilkan keluaran yang sama untuk masukan yang sama setiap kali. Hal ini penting untuk pipeline yang memberi makan sistem hilir atau yang harus dapat diaudit.
  • Kecepatan dan biaya: spaCy berjalan di CPU biasa dan memproses ribuan dokumen per detik untuk banyak tugas. Tidak ada biaya API per token.
  • Struktur: spaCy mengembalikan anotasi bertipe pada level span (entitas, token, dependensi), bukan teks bebas yang harus diurai kembali.
  • Privasi: teks tidak perlu keluar dari infrastruktur Anda.

Pola yang umum adalah menggunakan spaCy untuk ekstraksi dan perutean bervolume tinggi, lalu menyisakan LLM untuk sebagian kecil kasus yang benar-benar memerlukan penalaran terbuka. spaCy juga dapat mengintegrasikan prompt LLM sebagai komponen pipeline melalui paket spacy-llm bila Anda ingin keduanya dalam satu alur kerja.

Instalasi dan Mengunduh Model

Pasang spaCy dengan pip. Disarankan menggunakan virtual environment agar versi model tetap terkunci pada proyek Anda.

python -m venv .venv

source .venv/bin/activate # di Windows: .venv\Scripts\activate

pip install spacy

Model didistribusikan terpisah dari pustaka. Unduh model bahasa Inggris berukuran kecil untuk memulai:

python -m spacy download encorewebsm

Model bahasa Inggris mengikuti konvensi penamaan: en (bahasa), core (pipeline serbaguna), web (dilatih pada teks web), dan sufiks ukuran:

  • encorewebsm — kecil, cepat, tanpa word vector.
  • encorewebmd — sedang, menyertakan word vector.
  • encoreweblg — besar, lebih banyak vector.
  • encorewebtrf — berbasis transformer, akurasi tertinggi, butuh komputasi lebih besar.

Anda dapat memeriksa apa yang terpasang dan memvalidasi kompatibilitasnya:

python -m spacy info

python -m spacy validate

Pipeline nlp dan Objek Inti

Memuat model memberi Anda objek nlp. Memanggilnya pada sebuah string akan menjalankan seluruh pipeline dan mengembalikan sebuah Doc.

import spacy

nlp = spacy.load("encorewebsm")

text = "Acme Corp acquired Globex Ltd for $4.5 billion in March 2023."

doc = nlp(text)

print(type(doc)) #

print(len(doc)) # jumlah token

print([token.text for token in doc])

Sebuah Doc adalah urutan objek Token. Potongan token yang berurutan adalah sebuah Span. Tiga objek inilah yang menjadi fondasi untuk segala hal lainnya.

# Token: satu kata, tanda baca, atau simbol

first = doc[0]

print(first.text, first.idx) # "Acme" 0

Span: potongan dari Doc

span = doc[0:2]

print(span.text) # "Acme Corp"

Kalimat juga merupakan Span

for sent in doc.sents:

print(sent.text)

Memeriksa Pipeline

Objek nlp memuat daftar komponen yang terurut. Anda dapat memeriksanya dan memodifikasinya.

print(nlp.pipenames)

['tok2vec', 'tagger', 'parser', 'attributeruler', 'lemmatizer', 'ner']

Artikel Terkait

Tutorial SHAP: Explainable AI dan Interpretasi Model

SHAP - Panduan Praktis Explainable AI dan Interpretabilitas Model Model machine learning makin sering dipakai untuk meng...

Tutorial PyOD: Deteksi Anomali dan Outlier dengan Python

Deteksi Anomali di Python dengan PyOD: Panduan Praktis Sebagian besar dataset di dunia nyata mengandung sebagian kecil d...

Tutorial BERTopic: Topic Modeling Modern dengan Embeddings

BERTopic: Pemodelan Topik Modern dengan Embedding BERTopic adalah library pemodelan topik yang menggabungkan embedding t...

Tutorial Sentence Transformers: Embeddings, Similarity, dan Reranker

Sentence Transformers: Embedding, Kemiripan Semantik, dan Reranker Sentence Transformers (sering disebut SBERT) adalah p...