/sastrawi

High quality stemmer library for Indonesian Language (Bahasa)

Primary LanguagePHPMIT LicenseMIT

Sastrawi

Sastrawi is a simple PHP library which allows you to reduce inflected words in Indonesian Language (Bahasa Indonesia) to their base form (stem). Despite its simplicity, this library is designed to be high quality and well documented. For more information in english, see README.

Development Master Releases Statistics
Build Status Code Coverage Scrutinizer Code Quality Build Status Latest Stable Version Total Downloads

Stemming

Stemming adalah proses mengubah kata berimbuhan menjadi kata dasar. Contohnya:

  • menahan => tahan
  • berbalas-balasan => balas

Contoh kasus

Katakanlah sebuah blog post berisi:

Rakyat memenuhi halaman gedung untuk menyuarakan isi hatinya.

Pencarian dengan query di bawah ini tidak akan menemukan post di atas,

SELECT * FROM posts WHERE content LIKE '%suara%'

Proses stemming dapat membantu menemukan dokumen yang sedang dicari yaitu dengan menanggalkan imbuhan-imbuhan hingga hanya menyisakan kata dasar seperti berikut:

rakyat penuh halaman gedung suara isi hati

Lalu kata kunci pencarian juga dijadikan kata dasar:

Bersuara => suara

Sastrawi

  • Library PHP untuk stemming Bahasa Indonesia.
  • Mudah diintegrasikan dengan framework / package lainnya.
  • Mempunyai API yang sederhana dan mudah digunakan.

Demo

http://sastrawi.github.io

Cara Install

Sastrawi dapat diinstall dengan Composer.

  1. Buka terminal (command line) dan arahkan ke directory project Anda.
  2. Download Composer sehingga file composer.phar berada di directory tersebut.
  3. Tambahkan sastrawi ke file composer.json Anda :
php composer.phar require sastrawi/sastrawi:^1

Jika Anda masih belum memahami bagaimana cara menggunakan Composer, silahkan baca Getting Started with Composer.

Cara menjalankan test

vendor/bin/phpunit

Penggunaan

Copy kode berikut di directory project anda. Lalu jalankan file tersebut.

<?php
// demo.php

// include composer autoloader
require_once __DIR__ . '/vendor/autoload.php';

// create stemmer
// cukup dijalankan sekali saja, biasanya didaftarkan di service container
$stemmerFactory = new \Sastrawi\Stemmer\StemmerFactory();
$stemmer  = $stemmerFactory->createStemmer();

// stem
$sentence = 'Perekonomian Indonesia sedang dalam pertumbuhan yang membanggakan';
$output   = $stemmer->stem($sentence);

echo $output . "\n";
// ekonomi indonesia sedang dalam tumbuh yang bangga

echo $stemmer->stem('Mereka meniru-nirukannya') . "\n";
// mereka tiru

Menambah dan Mengurangi Kata Dasar

<?php

// include composer autoloader
require_once __DIR__ . '/vendor/autoload.php';

// create stemmer
// cukup dijalankan sekali saja, biasanya didaftarkan di service container

$stemmerFactory = new \Sastrawi\Stemmer\StemmerFactory();

$dictionary = $stemmerFactory->createDefaultDictionary();
$dictionary->addWordsFromTextFile(__DIR__.'/my-dictionary.txt');
$dictionary->add('internet');
$dictionary->remove('desa');

$stemmer = new \Sastrawi\Stemmer\Stemmer($dictionary);

var_dump($stemmer->stem('internetan')); //internet

Pustaka

Algoritma

Algoritma yang digunakan pada library ini adalah hak intelektual masing-masing pemiliknya yang tertera di bawah ini. Lalu untuk meningkatkan kualitas kode, algoritma tersebut diterapkan ke dalam Object Oriented Design.

  • Algoritma Nazief dan Adriani
  • Asian J. 2007. Effective Techniques for Indonesian Text Retrieval. PhD thesis School of Computer Science and Information Technology RMIT University Australia
  • Arifin, A.Z., I.P.A.K. Mahendra dan H.T. Ciptaningtyas. 2009. Enhanced Confix Stripping Stemmer and Ants Algorithm for Classifying News Document in Indonesian Language, Proceeding of International Conference on Information & Communication Technology and Systems (ICTS)
  • A. D. Tahitoe, D. Purwitasari. 2010. Implementasi Modifikasi Enhanced Confix Stripping Stemmer Untuk Bahasa Indonesia dengan Metode Corpus Based Stemming, Institut Teknologi Sepuluh Nopember (ITS) – Surabaya, 60111, Indonesia

Kamus Kata Dasar

Proses stemming oleh Sastrawi sangat bergantung pada kamus kata dasar. Sastrawi menggunakan kamus kata dasar dari kateglo.com dengan sedikit perubahan.

Lisensi

Lisensi sastrawi adalah MIT License (MIT) sedangkan lisensi kamus kata dasar dari Kateglo adalah CC-BY-NC-SA 3.0. Untuk informasi lebih lengkap silahkan lihat Lisensi Sastrawi dan Lisensi isi Kateglo.

Di Bahasa Pemrograman Lain

Informasi Lebih Lanjut