Tokenisasi Teks dengan Regular Expression, Cara Mudahnya!
Pernah kepikiran gimana cara memecah teks jadi bagian-bagian kecil? Misalnya, kita punya paragraf panjang dan ingin mengambil setiap kata satu per satu, atau kita mau memisahkan teks berdasarkan tanda baca. Nah, di sinilah tokenisasi teks berperan!
Di JavaScript, kita bisa melakukan tokenisasi teks dengan Regular Expression (RegExp) secara cepat, fleksibel, dan akurat. Yuk, kita bahas cara gampangnya!
Apa Itu Tokenisasi Teks?
Tokenisasi adalah proses memecah teks menjadi unit-unit kecil yang disebut "token". Token ini bisa berupa kata, angka, atau simbol yang digunakan untuk pemrosesan lebih lanjut dalam NLP (Natural Language Processing), pencarian teks, atau analisis data.
Contoh:
Teks:
"Halo, selamat datang di dunia coding!"
Setelah tokenisasi, teks bisa menjadi:
["Halo", "selamat", "datang", "di", "dunia", "coding"]
Di sinilah Regular Expression membantu kita memecah teks dengan aturan tertentu.
Tokenisasi Teks di JavaScript dengan Regular Expression
Di JavaScript, kita bisa pakai split()
dengan RegExp untuk memecah teks.
1. Tokenisasi Berdasarkan Spasi
Cara paling dasar buat memecah teks adalah menggunakan spasi sebagai pemisah:
let teks = "Halo selamat datang di dunia coding";
let token = teks.split(" ");
console.log(token);
// Output: ["Halo", "selamat", "datang", "di", "dunia", "coding"]
📌 Masalahnya:
Metode ini tidak menangani tanda baca seperti koma atau titik. Kata seperti "coding!" masih dianggap sebagai satu token.
2. Tokenisasi dengan Regular Expression
Supaya lebih akurat, kita bisa menghapus tanda baca sekaligus saat memecah teks.
Gunakan RegExp /\W+/
untuk memisahkan kata berdasarkan karakter non-alphabet (tanda baca dan spasi):
let teks = "Halo, selamat datang di dunia coding!";
let token = teks.split(/\W+/);
console.log(token);
// Output: ["Halo", "selamat", "datang", "di", "dunia", "coding"]
📌 Penjelasan /\W+/
:
\W
→ Karakter bukan huruf, angka, atau underscore (_
)+
→ Ambil semua karakter non-alphabet yang berurutan sebagai pemisah
Sekarang, tanda baca seperti koma dan tanda seru nggak ikut masuk ke dalam token.
3. Tokenisasi dengan Menyertakan Tanda Baca
Kadang, kita butuh memisahkan kata tapi tetap menyimpan tanda baca seperti koma atau titik.
Gunakan lookahead (?=
) dan lookbehind (?<=
) dalam RegExp:
let teks = "Halo, selamat datang di dunia coding!";
let token = teks.match(/[\w']+|[.,!?;]/g);
console.log(token);
// Output: ["Halo", ",", "selamat", "datang", "di", "dunia", "coding", "!"]
📌 Penjelasan [\w']+|[.,!?;]
:
[\w']+
→ Ambil kata (huruf, angka, atau apostrof dalam kata seperti "don't")|
→ Atau[.,!?;]
→ Ambil tanda baca sebagai token terpisah
Sekarang, tanda baca tetap terpisah sebagai token sendiri!
4. Tokenisasi untuk Kalimat (Sentence Tokenization)
Kalau mau memecah teks menjadi kalimat, kita bisa pakai tanda titik (.
), tanda tanya (?
), atau tanda seru (!
) sebagai pemisah:
let teks = "Halo! Apa kabar? Selamat datang di dunia coding.";
let kalimat = teks.split(/[.!?]+/);
console.log(kalimat);
// Output: ["Halo", " Apa kabar", " Selamat datang di dunia coding", ""]
📌 Penjelasan /[.!?]+/
:
[.!?]
→ Cari tanda baca titik, tanda seru, atau tanda tanya+
→ Ambil semua tanda baca yang berurutan sebagai pemisah
💡 Catatan: Ada string kosong ""
di hasil output karena ada titik di akhir kalimat. Kita bisa menghapus hasil kosong dengan filtering:
let hasilBersih = kalimat.filter(Boolean);
console.log(hasilBersih);
📌 Sekarang hasilnya tanpa string kosong!
5. Tokenisasi Khusus: Ambil Hanya Angka atau Kata Tertentu
Kadang kita cuma butuh angka saja dari teks:
let teks = "Saya punya 3 apel dan 7 jeruk.";
let angka = teks.match(/\d+/g);
console.log(angka);
// Output: ["3", "7"]
📌 Penjelasan /\d+/g
:
\d+
→ Ambil angka dalam teksg
→ Global match, ambil semua angka yang ditemukan
Kapan Harus Pakai Tokenisasi dengan RegExp?
Gunakan tokenisasi dengan Regular Expression kalau kamu ingin: ✅ Memecah teks menjadi kata atau kalimat
✅ Menghilangkan tanda baca dari hasil token
✅ Mengambil angka atau simbol tertentu dari teks
✅ Mengoptimalkan analisis teks dalam pemrograman NLP atau pencarian teks
Kesimpulan
Tokenisasi teks di JavaScript jadi super fleksibel kalau kita pakai Regular Expression (RegExp). Dengan teknik ini, kita bisa: ✔ Memisahkan kata dalam teks tanpa tanda baca
✔ Menyimpan tanda baca sebagai token sendiri
✔ Memecah teks menjadi kalimat
✔ Mengambil angka atau karakter tertentu dalam teks
Mau mulai pakai tokenisasi teks di JavaScript? Coba di kode kamu sekarang!