Word Embedding Bahasa Indonesia menggunakan Fasttext (Part 1.5)

Pada artikel sebelumnya saya sempat menuliskan bagaimana menggunakan Gensim untuk me-load pre-trained model FastText. Ternyata metode tersebut “kebetulan” mudah digunakan untuk data bahasa Indonesia. Ketika kita memilih bahasa lain, Gensim bisa jadi memunculkan masalah karena untuk me-load, Gensim membutuhkan resource RAM yang cukup tinggi

Sebagai contoh jika kita coba me-load pre-trained model bahasa Inggris di Google Colab yang memiliki kapasitas RAM 12GB, Google Colab akan crash karena notebook kita menggunakan sumberdaya melebihi yang disediakan.

Berikut contoh program untuk me-load model bahasa Inggris menggunakan Gensim (detail sintaks program sebelumnya sudah sempat saya bahas di post sebelumnya)

Dan hasilnya, RAM kita yang 12GB itu secara perlahan akan habis digunakan. Lalu berakhir Google Colab kita akan mengalami crash dengan pesan berikut:

Untuk itu ada cara lain yang ingin saya bahas singkat di post ini bagaimana cara me-load pre-trained model Fasttext jika RAM kita terbatas

Menggunakan Fasttext Python Library

Seperti yang telah saya singgung di artikel sebelumnya, terdapat dua library yang dapat kita gunakan saat ingin menerapkan FastText di Python. Yang pertama adalah menggunakan Gensim, dan yang kedua adalah menggunakan package resmi dari FastText. Dokumentasinya dapat dibaca di halaman github ini.

Sedikit trivia, sebenarnya package FastText hanya tersedia untuk bahasa C++ dan dijalankan menggunakan command line. Sedangkan versi Python ini awalnya dibuat lebih dulu oleh orang Indonesia, yakni Bayu Aldiansyah saat dia bekerja di Salestock. Lalu package ini dilanjutkan pengembangannya oleh tim Facebook AI Research.

Proses Instalasi

Proses instalasi memerlukan kita mendownload reponya terlebih dahulu, lalu menginstallnya dengan pip. Jika menggunakan command line ubuntu, cukup jalankan dua perintah di bawah.

Setelah terinstall, kita dapat me-load library fastText pada program python kita menggunakan perintah

Yang menurut saya kurang dari package ini adalah dokumentasinya yang masih sederhana. Saya perlu beberapa kali membaca kode sumber aslinya untuk melihat fitur-fitur yang ada pada package ini.

Load Pre-trained Model

Untuk proses me-load pre-trained model, package python fastText juga sama meminta kita untuk menyiapkan file *.bin nya bukan file *.vec nya. (bedanya apa? bisa baca post sebelumnya) Ya, walapun kita sebenarnya bisa saja mengconvert file *.vec menjadi *.bin. Sintaks untuk me-load adalah berikut:

Proses loading akan membutuhkan waktu lama, tapi tenang, RAM yang akan digunakan totalnya akan lebih sedikit dibanding saat menggunakan Gensim. Total RAM yang saya gunakan untuk me-load menggunakan package python FastText hanya sekitar 7GB

Sehingga proses mengubah kata menjadi vektor pun dapat dilakukan tanpa mengalami crash. Untuk dokumentasi lengkap fungsi-fungsi yang ada bisa lihat di file kode sumbernya. Misalnya, menggunakan Python FastText ini kita tidak hanya bisa mendapatkan vektor dari sebuah kata, tetapi juga seluruh kalimat, menggunakan method get_vector_sentence:

Sekian, semoga bermanfaat.

About the author

Rian Adam

View all posts

Leave a Reply

Your email address will not be published. Required fields are marked *