Stemming merupakan proses menemukan kata dasar (root word) dari kata berimbuhan (affixed word) dengan cara menghilangkan semua imbuhan (affix) yang terdiri dari awalan (prefix), sisipan (infix), akhiran (suffix) dan kombinasi awalan dan akhiran (confix). Detail kata berimbuhan dalam bahasa Indonesia dan proses pembentukannya bisa dilihat pada artikel ini. Dalam text analytics, stemming merupakan salah satu proses penting yang sangat mempengaruhi kualitas hasil analisis. Ada banyak algoritma yang digunakan untuk melakukan proses stemming, diantaranya algoritma Nazief dan Andriani dan algoritma Porter.
Di internet, banyak sekali informasi terkait stemming bahasa Indonesia
bahkan source code-nya pun tersedia. Silakan
Googling
untuk infomasi lebih lengkap :) Namun, tidak demikian dengan R. Saya
kesulitan untuk untuk menemukan R package untuk keperluan stemming
bahasa Indonesia. Karena itulah saya membuat package katadasaR
.
katadasaR
adalah package yang berisi fungsi untuk stemming bahasa
Indonesia dengan R menggunakan algoritma Nazief dan Andriani. Ini
[bukanlah karya saya]{.highlight} sepenuhnya sebab saya hanya
menulis ulang kode C-Sharp dari blog
csharp-indonesia.com
ke dalam bahasa R.
Fitur
katadasaR
melakukan stemming kata-per-kata dengan mengacu pada kamus
kata dasar yang secara default sudah tersedia pada package.
katadasaR
dilengkapi fungsi untuk menghapus imbuhan berikut:
- Awalan, seperti bertemu, dimakan
- Akhiran, seperti makanan, miliknya
- Kombinasi awalan dan akhiran, seperti pertemuan, mempermainkan
Namun, untuk saat ini katadasaR
belum bisa digunakan untuk:
- Menghapus sisipan, misalnya er dari seruling, el dari selidik
- Menghapus sisipan kata serapan, misalnya isme dari nasionali sme
- Menghapus imbuhan dari pengulanan kata, misalnya bermain-main, bermaaf-maafan
- Menambahkan kamus atau list kata dasar (dalam pengembangan)
- Dan lain-lain (infokan berbagai bugs di Github)
Instalasi
Saat ini masih dalam tahap pengembangan dan hanya tersedia di repo
Github. Untuk instal package
katadasaR
, silakan gunakan fungsi devtools::install_github()
berikut:
# install_packages("devtools")
library(devtools)
install_github("nurandi/katadasaR")
Penggunaan
katadasaR
hanya mampu melakukan stemming terhadap satu kata, bukan
frase atau kalimat. Untuk stemming kalimat, silakan split kalimat
menjadi kata-kata lalu gunakan fungsi katadasaR
dalam loop. Contoh:
library(katadasaR)
katadasaR("makanan")
# output:
# [1] "makan"
words <- c("jakarta", "seminar", "penggunaan", "menggurui", "pelajaran", "dimana")
sapply(words, katadasaR)
# output
# jakarta seminar penggunaan menggurui pelajaran dimana
# "jakarta" "seminar" "guna" "guru" "ajar" "mana"
Acknowledgement
Semoga bermanfaat :)