
Artikel Tokenisasi ini bagian dari Kategori Machine Learning
Apa Itu Tokenisasi?
Tokenisasi adalah proses memecah teks (biasanya berbentuk kalimat atau paragraf) menjadi unit-unit yang lebih kecil yang disebut token. Token ini bisa berupa:
- Kata-kata (word tokenization).
- Frasa-frasa pendek (phrase tokenization).
- Karakter atau sub-karakter (penting dalam subword tokenization, misalnya saat memproses teks dengan metode Byte Pair Encoding atau WordPiece di bidang deep learning).
- Elemen lain seperti angka, tanda baca, atau simbol tertentu (tergantung kebutuhan).
Proses tokenisasi ini umumnya dilakukan pada tahap awal pemrosesan bahasa alami karena banyak algoritma atau model (misalnya machine learning atau deep learning) mengharuskan data dalam bentuk token (baik berupa vektor numerik ataupun embedding lainnya).
Mengapa Tokenisasi Penting?
- Persiapan Data untuk Pemrosesan Lanjutan
Model NLP, seperti Bag-of-Words, Word Embeddings, atau Transformers, membutuhkan masukan data teks yang sudah diolah menjadi bentuk token. - Menangani Keanekaragaman Bentuk Kata
Bahasa memiliki banyak variasi kata (infleksi, awalan, akhiran, dsb.). Tokenisasi memungkinkan kita menerapkan teknik lanjutan untuk menyamakan variasi kata yang sebetulnya bermakna sama. - Menyederhanakan Analisis Teks
Dengan memecah teks menjadi token, kita bisa fokus pada potongan teks yang lebih kecil, mempermudah proses seperti perhitungan frekuensi kata, n-grams, dan co-occurrences.
Tahapan Detil dalam Tokenisasi
Secara garis besar, tahapan tokenisasi meliputi:
- Segmentasi Teks (Sentence Splitting / Sentence Segmentation)
- Untuk teks yang terdiri dari banyak kalimat (misalnya paragraf atau artikel), seringkali langkah pertama adalah memisahkan teks menjadi masing-masing kalimat.
- Contoh (bahasa Inggris): “I have a book. It’s on the table.”
Menjadi dua kalimat:- “I have a book.”
- “It’s on the table.”
- Pemecahan Menjadi Kata (Word Tokenization)
- Setelah (atau tanpa) segmentasi kalimat, selanjutnya adalah memecah teks menjadi kata-kata.
- Umumnya, pemecahan didasarkan pada spasi atau tanda baca. Namun, bahasa tertentu (seperti bahasa Mandarin, Jepang) tidak memiliki pemisah antar kata berbasis spasi, sehingga tokenisasi menjadi lebih kompleks dan memerlukan pendekatan berbasis kamus (dictionary-based) atau statistical approach.
- Contoh (bahasa Inggris): “I put the book on the teacher’s desk.”
Menjadi:["I", "put", "the", "book", "on", "the", "teacher's", "desk"]
- Penanganan Tanda Baca dan Karakter Khusus
- Tanda baca seperti titik (
.
), koma (,
), tanda tanya (?
), tanda seru (!
), dsb., bisa dihapus atau dipertahankan tergantung kebutuhan. - Pada beberapa analisis, tanda baca penting untuk sentiment analysis (misalnya tanda seru untuk ekspresi emosi) atau named entity recognition (misalnya nama seseorang diikuti titik).
- Contoh:
Dari["I", "put", "the", "book", "on", "the", "teacher's", "desk"]
jika Anda memilih menghapus tanda baca, makateacher's
bisa berubah menjaditeachers
.
- Tanda baca seperti titik (
- Normalisasi
- Lowercasing: Mengubah semua huruf menjadi huruf kecil. Ini dilakukan agar model tidak menganggap kata
Book
berbeda denganbook
. - Menghapus atau Menangani Angka: Terkadang angka dihapus atau diubah ke token khusus seperti
<NUM>
tergantung konteks. - Menangani Karakter Tidak Standar: Dalam teks media sosial, sering ada emotikon, simbol, hashtag, dsb. Normalisasi mungkin diperlukan (misal
#AI
menjadiAI
atau tetap dipertahankan sebagai token unik). - Contoh:
["I", "put", "the", "book", "on", "the", "teacher's", "desk"]
menjadi["i", "put", "the", "book", "on", "the", "teacher's", "desk"]
.
- Lowercasing: Mengubah semua huruf menjadi huruf kecil. Ini dilakukan agar model tidak menganggap kata
- Penghapusan Stop Words
- Stop words adalah kata-kata yang sangat umum dan sering tidak memberikan makna semantik signifikan (misal: the, is, at dalam bahasa Inggris, atau yang, dan, di, ke dalam bahasa Indonesia).
- Dalam banyak aplikasi NLP (terutama information retrieval atau analisis topik), kata-kata ini cenderung dihapus. Namun, pada beberapa tugas seperti sequence tagging (misalnya Named Entity Recognition), kadang tidak dihapus karena bisa memengaruhi konteks.
- Contoh:
Dari["i", "put", "the", "book", "on", "the", "teacher's", "desk"]
setelah menghapus stop words umum (misal “the”, “on”, “i”)
menjadi["put", "book", "teacher's", "desk"]
.
- Stemming atau Lemmatization
- Stemming adalah proses memotong kata hingga menjadi bentuk dasar (stem) tanpa memperhatikan aturan bahasa yang sangat baku (contoh: “books”, “booked”, “booking” → “book”). Pendekatan ini bersifat rule-based sederhana (misal menghapus akhiran -s, -ed, dsb. untuk bahasa Inggris).
- Lemmatization lebih canggih. Ia mencoba mengubah kata menjadi lemma-nya, yaitu bentuk dasar yang sesuai dengan penjelasan di kamus (contoh: “was” → “be”, “mice” → “mouse”). Untuk bahasa Indonesia, misalnya “memakan” → “makan”.
- Ini dilakukan agar variasi kata yang berbeda (plural, tense, dll.) dipetakan ke satu bentuk yang sama.
- (Opsional) Subword Tokenization
- Pada beberapa model deep learning (contoh: BERT, GPT), tokenisasi dapat masuk pada level sub-kata agar bisa meng-handle kata yang belum pernah dilihat (Out-Of-Vocabulary / OOV).
- Misalnya, kata yang sangat panjang atau jarang muncul akan dipecah menjadi potongan sub-kata (misal
unbelievable
→["un", "##believ", "##able"]
pada tokenizer BERT). - Ini membantu model memahami bagian-bagian kata secara lebih fleksibel.
Contoh Lengkap Proses Tokenisasi
Ambil kalimat:
“I put the book on the teacher’s desk.”
- Kalimat Asli
"I put the book on the teacher's desk."
- Tokenisasi Kata
["I", "put", "the", "book", "on", "the", "teacher's", "desk"]
- Penghapusan Tanda Baca
(Jika diinginkan, tergantung kebutuhan)["I", "put", "the", "book", "on", "the", "teachers", "desk"]
- Normalisasi (Lowercasing)
["i", "put", "the", "book", "on", "the", "teachers", "desk"]
- Penghapusan Stop Words
(Misalnya “i”, “the”, “on”)["put", "book", "teachers", "desk"]
- (Opsional) Stemming atau Lemmatization
- Misalnya jika terdapat kata “teachers”, maka stemming sederhana mungkin menjadikannya “teacher”.
- Pada kasus lemmatization dengan kamus khusus, “teachers” → “teacher” (bentuk tunggal).
- Hasil akhir:
["put", "book", "teacher", "desk"]
Proses ini akan bervariasi tergantung bahasa, kebutuhan analisis, dan teknik yang digunakan.
Tantangan Tokenisasi dalam Berbagai Bahasa
- Bahasa Tanpa Pemisah Spasi yang Jelas (misal: Tionghoa, Jepang)
- Tokenisasi memerlukan pendekatan berbasis kamus (dictionary) atau metode machine learning untuk menebak batas kata.
- Bahasa yang Kompleks (misal: Bahasa Agregatif atau Bahasa Fleksi)
- Bahasa Indonesia relatif aglutinatif (misal memiliki imbuhan me-, di-, -kan, dsb.). Kata seperti “menyanyikan” berisi
me- + nyanyi + -kan
. Di sinilah stemming dan lemmatization menjadi penting.
- Bahasa Indonesia relatif aglutinatif (misal memiliki imbuhan me-, di-, -kan, dsb.). Kata seperti “menyanyikan” berisi
- Pemakaian Kata Campur (Kode Bahasa Campuran atau Code-Mixing)
- Di media sosial, sering ditemui kalimat campur bahasa Indonesia dan Inggris, seperti “Aku lagi check-in di hotel”. Tokenisasi perlu menangani dua bahasa dengan baik.
- Tanda Baca, Emotikon, Hashtag, Mention, dsb.
- Pada teks media sosial (Twitter, Instagram, dsb.), sering muncul format
#Hashtag
,@username
, emotikon (😊), atau slang. Keputusan apakah akan dihapus, dipertahankan, atau diolah lebih lanjut harus disesuaikan dengan tujuan analisis.
- Pada teks media sosial (Twitter, Instagram, dsb.), sering muncul format
Perangkat Lunak dan Pustaka yang Umum Digunakan
- NLTK (Natural Language Toolkit) – Python
- Menyediakan fungsi
word_tokenize
,sent_tokenize
, stopwords, stemmer, lemmatizer, dll.
- Menyediakan fungsi
- spaCy
- Memiliki tokenizer canggih berbasis aturan dan statistik, mendukung banyak bahasa. Termasuk lemmatizer yang cukup kuat.
- CoreNLP – Java
- Dikembangkan oleh Stanford, juga banyak digunakan untuk berbagai tugas NLP, termasuk tokenization.
- Hugging Face Tokenizers
- Berguna untuk subword tokenization (BPE, WordPiece), biasanya dipakai dalam model Transformer seperti BERT, GPT, dsb.
- Regex (Regular Expression) Sederhana
- Pada proyek yang sangat spesifik, kadang cukup menggunakan regex untuk memecah teks berdasarkan pola tertentu.
Ringkasan
- Tokenisasi adalah langkah awal dalam banyak pipeline NLP untuk memecah teks menjadi unit yang dapat diproses lebih lanjut.
- Proses ini bisa melibatkan:
- Segmentasi kalimat.
- Pemecahan teks menjadi kata (atau sub-kata).
- Penanganan tanda baca dan karakter khusus.
- Normalisasi (lowercasing, dsb.).
- Penghapusan stop words.
- Stemming atau lemmatization.
- Penting untuk selalu menyesuaikan proses tokenisasi dengan:
- Bahasa yang digunakan.
- Kebutuhan analisis (apakah stop words penting atau tidak, dsb.).
- Tujuan spesifik (apakah untuk sentiment analysis, named entity recognition, machine translation, dsb.).
Dengan pemahaman lebih rinci di atas, semoga Anda lebih mengerti mengapa tokenisasi menjadi fondasi yang sangat penting dalam pipeline NLP. Setiap tugas NLP umumnya membutuhkan pendekatan tokenisasi yang sedikit berbeda, sehingga Anda perlu menyesuaikannya dengan konteks dan tujuan akhir analisis teks. Semoga membantu!
Leave a Reply