AI-For-Beginners/translations/id/lessons/5-NLP/13-TextRep
localizeflow[bot] c0566b76f0 chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:14:00 +00:00
..
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:14:00 +00:00
TextRepresentationPyTorch.ipynb Fallback snapshot commit due to git add failure 2026-01-15 12:40:29 +00:00
TextRepresentationTF.ipynb Fallback snapshot commit due to git add failure 2026-01-15 12:40:29 +00:00
assignment.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:14:00 +00:00

README.md

Representasi Teks sebagai Tensor

Kuis Pra-Kuliah

Klasifikasi Teks

Sepanjang bagian pertama dari sesi ini, kita akan fokus pada tugas klasifikasi teks. Kita akan menggunakan Dataset AG News, yang berisi artikel berita seperti berikut:

  • Kategori: Sci/Tech
  • Judul: Ky. Company Wins Grant to Study Peptides (AP)
  • Isi: AP - Sebuah perusahaan yang didirikan oleh peneliti kimia di Universitas Louisville memenangkan hibah untuk mengembangkan...

Tujuan kita adalah mengklasifikasikan berita tersebut ke dalam salah satu kategori berdasarkan teksnya.

Representasi Teks

Jika kita ingin menyelesaikan tugas Pemrosesan Bahasa Alami (NLP) dengan jaringan saraf, kita memerlukan cara untuk merepresentasikan teks sebagai tensor. Komputer sudah merepresentasikan karakter teks sebagai angka yang dipetakan ke font di layar Anda menggunakan encoding seperti ASCII atau UTF-8.

Gambar menunjukkan diagram pemetaan karakter ke representasi ASCII dan biner

Sumber gambar

Sebagai manusia, kita memahami apa yang setiap huruf wakili, dan bagaimana semua karakter bergabung membentuk kata-kata dalam sebuah kalimat. Namun, komputer sendiri tidak memiliki pemahaman seperti itu, dan jaringan saraf harus mempelajari maknanya selama pelatihan.

Oleh karena itu, kita dapat menggunakan pendekatan yang berbeda saat merepresentasikan teks:

  • Representasi tingkat karakter, di mana kita merepresentasikan teks dengan memperlakukan setiap karakter sebagai angka. Mengingat kita memiliki C karakter berbeda dalam korpus teks kita, kata Hello akan direpresentasikan oleh tensor 5xC. Setiap huruf akan sesuai dengan kolom tensor dalam one-hot encoding.
  • Representasi tingkat kata, di mana kita membuat kosakata dari semua kata dalam teks kita, dan kemudian merepresentasikan kata-kata menggunakan one-hot encoding. Pendekatan ini agak lebih baik, karena setiap huruf sendiri tidak memiliki banyak makna, sehingga dengan menggunakan konsep semantik tingkat tinggi - kata-kata - kita menyederhanakan tugas untuk jaringan saraf. Namun, mengingat ukuran kamus yang besar, kita perlu menangani tensor jarang berdimensi tinggi.

Terlepas dari representasinya, kita pertama-tama perlu mengubah teks menjadi urutan token, satu token bisa berupa karakter, kata, atau kadang-kadang bahkan bagian dari kata. Kemudian, kita mengubah token menjadi angka, biasanya menggunakan kosakata, dan angka ini dapat dimasukkan ke dalam jaringan saraf menggunakan one-hot encoding.

N-Gram

Dalam bahasa alami, makna pasti dari kata-kata hanya dapat ditentukan dalam konteks. Misalnya, makna jaringan saraf dan jaringan memancing sangat berbeda. Salah satu cara untuk mempertimbangkan hal ini adalah dengan membangun model kita berdasarkan pasangan kata, dan menganggap pasangan kata sebagai token kosakata terpisah. Dengan cara ini, kalimat Saya suka pergi memancing akan direpresentasikan oleh urutan token berikut: Saya suka, suka pergi, pergi memancing. Masalah dengan pendekatan ini adalah ukuran kamus tumbuh secara signifikan, dan kombinasi seperti pergi memancing dan pergi berbelanja diwakili oleh token yang berbeda, yang tidak berbagi kesamaan semantik meskipun menggunakan kata kerja yang sama.

Dalam beberapa kasus, kita mungkin mempertimbangkan menggunakan tri-gram -- kombinasi tiga kata -- juga. Oleh karena itu, pendekatan ini sering disebut n-gram. Selain itu, masuk akal untuk menggunakan n-gram dengan representasi tingkat karakter, di mana n-gram akan kurang lebih sesuai dengan berbagai suku kata.

Bag-of-Words dan TF/IDF

Saat menyelesaikan tugas seperti klasifikasi teks, kita perlu dapat merepresentasikan teks dengan satu vektor berukuran tetap, yang akan kita gunakan sebagai input untuk pengklasifikasi padat akhir. Salah satu cara termudah untuk melakukannya adalah dengan menggabungkan semua representasi kata individu, misalnya dengan menambahkannya. Jika kita menambahkan one-hot encoding dari setiap kata, kita akan mendapatkan vektor frekuensi, yang menunjukkan berapa kali setiap kata muncul dalam teks. Representasi teks semacam ini disebut bag of words (BoW).

Gambar oleh penulis

BoW pada dasarnya merepresentasikan kata-kata apa yang muncul dalam teks dan dalam jumlah berapa, yang memang bisa menjadi indikasi yang baik tentang apa teks tersebut. Misalnya, artikel berita tentang politik kemungkinan mengandung kata-kata seperti presiden dan negara, sementara publikasi ilmiah mungkin memiliki sesuatu seperti collider, ditemukan, dll. Oleh karena itu, frekuensi kata dalam banyak kasus dapat menjadi indikator yang baik tentang isi teks.

Masalah dengan BoW adalah bahwa kata-kata umum tertentu, seperti dan, adalah, dll. muncul di sebagian besar teks, dan memiliki frekuensi tertinggi, sehingga menutupi kata-kata yang benar-benar penting. Kita dapat menurunkan pentingnya kata-kata tersebut dengan mempertimbangkan frekuensi kemunculan kata-kata dalam seluruh koleksi dokumen. Ini adalah ide utama di balik pendekatan TF/IDF, yang dibahas lebih rinci dalam notebook yang dilampirkan pada pelajaran ini.

Namun, tidak ada pendekatan tersebut yang dapat sepenuhnya mempertimbangkan semantik teks. Kita memerlukan model jaringan saraf yang lebih kuat untuk melakukan ini, yang akan kita bahas nanti dalam sesi ini.

✍️ Latihan: Representasi Teks

Lanjutkan pembelajaran Anda di notebook berikut:

Kesimpulan

Sejauh ini, kita telah mempelajari teknik-teknik yang dapat menambahkan bobot frekuensi pada berbagai kata. Namun, teknik-teknik tersebut tidak mampu merepresentasikan makna atau urutan. Seperti yang dikatakan oleh ahli linguistik terkenal J. R. Firth pada tahun 1935, "Makna lengkap dari sebuah kata selalu bersifat kontekstual, dan tidak ada studi tentang makna yang terpisah dari konteks yang dapat dianggap serius." Kita akan belajar nanti dalam kursus ini bagaimana menangkap informasi kontekstual dari teks menggunakan pemodelan bahasa.

🚀 Tantangan

Coba beberapa latihan lain menggunakan bag-of-words dan model data yang berbeda. Anda mungkin terinspirasi oleh kompetisi ini di Kaggle

Kuis Pasca-Kuliah

Tinjauan & Studi Mandiri

Latih keterampilan Anda dengan teknik embedding teks dan bag-of-words di Microsoft Learn

Tugas: Notebook