Anggri Yulio P
Web Developer, sekarang mulai jatuh hati pada Computer Vision.
May 22, 2017 8:37 am

Steeming Bahasa Indonesia dengan Python Sastrawi

Steeming merupakan salah satu tahapan dalam proses text pre-processing. Steeming bertujuan untuk mentransofrmasikan kata menjadi kata dasarnya (root) dengan menghilangkan semua imbuhan kata (affixes) meliputi awalan kata (prefixes), sisipin kata (infixes), akhiran kata (suffixes) dan atau menghilangkan awalan dan akhiran kata (confixes) pada kata turunan.

Salah satu library yang bisa digunakan dalam melakukan proses stemming bahasa indonesia adalah dengan menggunakan Library Python Sastrawi 1. Library ini merupakan pengembangan dari Library PHP Sastrawi 2 dimana library tersebut menerapkan algoritma Algoritma Nazief dan Adriani 3. Tahapan algoritma tersebut meliputi :

  1. Langkah pertama adalah memeriksa apakah kata tersebut merupakan akar kata (root) terdapat dalam daftar akar kata (root). Kita kata tersebut merupakan akar kata, maka proses dihentikan pada tahap pertama ini.
  2. Menghilangkan Inflection Suffixes (“-lah”, “-kah”, “-ku”, “-mu”, atau “-nya”). Jika kata berupa particles (“-lah”, “-kah”, “-tah” atau “-pun”) maka langkah ini diulangi lagi untuk menghapus Possesive Pronouns (“-ku”, “-mu”, atau “-nya”).
  3. Menghilangkan derivational suffix (imbuhan turunan). Hilangkan imbuhan -i, -kan, -an.
  4. Menghilangkan derivational prefix (awalan turunan). Hilangkan awalan be-, di-, ke-, me-, pe-, se- dan te-.
  5. Bila dari langkah 4 di atas belum ketemu juga. Maka lakukan analisis apakah kata tersebut masuk dalam tabel diambiguitas kolom terakhir atau tidak.
  6. Bila dari langkah 4 di atas belum ketemu juga. Maka lakukan analisis apakah kata tersebut masuk dalam tabel diambiguitas kolom terakhir atau tidak.
  7. Bila semua proses di atas gagal, maka algoritma mengembalikan kata aslinya.

 

Install Library Python Sastrawi

Instalasi Library ini bisa menggunakan pip dengan perintah pip install Sastrawi  .

Menggunakan Library Python Sastrawi

Setelah library berhasil dipasang, mari kita coba melakukan proses steeming bahasa indonesia dengan meng-import kelas StemmerFactory dari Library Sastrawi

 

 

Dari perintah diatas maka hasil steeming kalimat tersebut akan menjadi “valentino rossi tampak sangat sesal telah jatuh pada lap akhir motogp prancis 2017“, lebih jelaskan lihat pada gambar dibawah :

Steeming Bahasa Indonesia Python Sastrawi

Hasil Steeming Bahasa Indonesia Python Sastrawi

 

Kesimpulan

Penggunaan Library Sastrawi cukup baik dalam melakukan stemming kata kebentuk dasar nya (root). Kekuatan library sastrawi dengan algoritma Nazief & Adriani terletak pada kamus kata dasar. Salah satu tulisan Jim Geovedi tentang proses steeming menjelaskan beberapa masalah dalam proses steeming yaitu :

Jika algoritma stemming digunakan untuk menghilangkan suffix “-wati”. Untuk token “peragawati”, “biarawati” atau “wartawati” sudah benar karena akan menjadi “peraga”, “biara” dan “warta”. Namun bagaimana untuk nama seseorang seperti “Megawati” atau “Kurniawati”?

Dengan menggunakan Library Sastrawi ini tentunya tentunya masalah tersebut tidak terlalu berarti 😉

 

Referensi

  1. Sastrawi – https://github.com/har07/PySastrawi
  2. Python Sastrawi – https://github.com/sastrawi/sastrawi
  3. Adriani, M., Asian, J., Nazief, B., Tahaghoghi, S. M. M., & Williams, H. E. (2007). Stemming Indonesian. ACM Transactions on Asian Language Information Processing, 6(4), 1–33.
%d bloggers like this: