public function stemDataProvider()
{
$data = array();
// don't stem short words
$data[] = array('mei', 'mei');
$data[] = array('bui', 'bui');
// lookup up the dictionary, to prevent overstemming
// don't stem nilai to nila
$data[] = array('nilai', 'nilai');
// lah|kah|tah|pun
$data[] = array('hancurlah', 'hancur');
$data[] = array('benarkah', 'benar');
$data[] = array('apatah', 'apa');
$data[] = array('siapapun', 'siapa');
// ku|mu|nya
$data[] = array('jubahku', 'jubah');
$data[] = array('bajumu', 'baju');
$data[] = array('celananya', 'celana');
// i|kan|an
$data[] = array('hantui', 'hantu');
$data[] = array('belikan', 'beli');
$data[] = array('jualan', 'jual');
// combination of suffixes
$data[] = array('bukumukah', 'buku');
$data[] = array('miliknyalah', 'milik');
$data[] = array('kulitkupun', 'kulit');
$data[] = array('berikanku', 'beri');
$data[] = array('sakitimu', 'sakit');
$data[] = array('beriannya', 'beri');
$data[] = array('kasihilah', 'kasih');
// plain prefix
$data[] = array('dibuang', 'buang');
$data[] = array('kesakitan', 'sakit');
$data[] = array('sesuap', 'suap');
//$data[] = array('teriakanmu', 'teriak'); // wtf? kok jadi ria?
//teriakanmu -> te-ria-kan-mu
/* template formulas for derivation prefix rules (disambiguation) */
// rule 1a : berV -> ber-V
$data[] = array('beradu', 'adu');
// rule 1b : berV -> be-rV
$data[] = array('berambut', 'rambut');
// rule 2 : berCAP -> ber-CAP
$data[] = array('bersuara', 'suara');
// rule 3 : berCAerV -> ber-CAerV where C != 'r'
$data[] = array('berdaerah', 'daerah');
// rule 4 : belajar -> bel-ajar
$data[] = array('belajar', 'ajar');
// rule 5 : beC1erC2 -> be-C1erC2 where C1 != {'r'|'l'}
$data[] = array('bekerja', 'kerja');
$data[] = array('beternak', 'ternak');
// rule 6a : terV -> ter-V
$data[] = array('terasing', 'asing');
// rule 6b : terV -> te-rV
$data[] = array('teraup', 'raup');
// rule 7 : terCerV -> ter-CerV where C != 'r'
$data[] = array('tergerak', 'gerak');
// rule 8 : terCP -> ter-CP where C != 'r' and P != 'er'
$data[] = array('terpuruk', 'puruk');
// rule 9 : teC1erC2 -> te-C1erC2 where C1 != 'r'
$data[] = array('teterbang', 'terbang');
// rule 10 : me{l|r|w|y}V -> me-{l|r|w|y}V
$data[] = array('melipat', 'lipat');
$data[] = array('meringkas', 'ringkas');
$data[] = array('mewarnai', 'warna');
$data[] = array('meyakinkan', 'yakin');
// rule 11 : mem{b|f|v} -> mem-{b|f|v}
$data[] = array('membangun', 'bangun');
$data[] = array('memfitnah', 'fitnah');
$data[] = array('memvonis', 'vonis');
// rule 12 : mempe{r|l} -> mem-pe
$data[] = array('memperbarui', 'baru');
$data[] = array('mempelajari', 'ajar');
// rule 13a : mem{rV|V} -> mem{rV|V}
$data[] = array('meminum', 'minum');
// rule 13b : mem{rV|V} -> me-p{rV|V}
$data[] = array('memukul', 'pukul');
// rule 14 : men{c|d|j|z} -> men-{c|d|j|z}
$data[] = array('mencinta', 'cinta');
$data[] = array('mendua', 'dua');
$data[] = array('menjauh', 'jauh');
$data[] = array('menziarah', 'ziarah');
// rule 15a : men{V} -> me-n{V}
$data[] = array('menuklir', 'nuklir');
// rule 15b : men{V} -> me-t{V}
$data[] = array('menangkap', 'tangkap');
// rule 16 : meng{g|h|q} -> meng-{g|h|q}
$data[] = array('menggila', 'gila');
$data[] = array('menghajar', 'hajar');
$data[] = array('mengqasar', 'qasar');
// rule 17a : mengV -> meng-V
$data[] = array('mengudara', 'udara');
// rule 17b : mengV -> meng-kV
$data[] = array('mengupas', 'kupas');
// rule 18 : menyV -> meny-sV
$data[] = array('menyuarakan', 'suara');
// rule 19 : mempV -> mem-pV where V != 'e'
$data[] = array('mempopulerkan', 'populer');
// rule 20 : pe{w|y}V -> pe-{w|y}V
$data[] = array('pewarna', 'warna');
$data[] = array('peyoga', 'yoga');
// rule 21a : perV -> per-V
$data[] = array('peradilan', 'adil');
// rule 21b : perV -> pe-rV
$data[] = array('perumahan', 'rumah');
// rule 22 is missing in the document?
// rule 23 : perCAP -> per-CAP where C != 'r' and P != 'er'
$data[] = array('permuka', 'muka');
// rule 24 : perCAerV -> per-CAerV where C != 'r'
$data[] = array('perdaerah', 'daerah');
// rule 25 : pem{b|f|v} -> pem-{b|f|v}
$data[] = array('pembangun', 'bangun');
$data[] = array('pemfitnah', 'fitnah');
$data[] = array('pemvonis', 'vonis');
// rule 26a : pem{rV|V} -> pe-m{rV|V}
$data[] = array('peminum', 'minum');
// rule 26b : pem{rV|V} -> pe-p{rV|V}
$data[] = array('pemukul', 'pukul');
// rule 27 : men{c|d|j|z} -> men-{c|d|j|z}
$data[] = array('pencinta', 'cinta');
$data[] = array('pendahulu', 'dahulu');
$data[] = array('penjarah', 'jarah');
$data[] = array('penziarah', 'ziarah');
// rule 28a : pen{V} -> pe-n{V}
$data[] = array('penasihat', 'nasihat');
// rule 28b : pen{V} -> pe-t{V}
$data[] = array('penangkap', 'tangkap');
// rule 29 : peng{g|h|q} -> peng-{g|h|q}
$data[] = array('penggila', 'gila');
$data[] = array('penghajar', 'hajar');
$data[] = array('pengqasar', 'qasar');
// rule 30a : pengV -> peng-V
$data[] = array('pengudara', 'udara');
// rule 30b : pengV -> peng-kV
$data[] = array('pengupas', 'kupas');
// rule 31 : penyV -> peny-sV
$data[] = array('penyuara', 'suara');
// rule 32 : pelV -> pe-lV except pelajar -> ajar
$data[] = array('pelajar', 'ajar');
$data[] = array('pelabuhan', 'labuh');
// rule 33 : peCerV -> per-erV where C != {r|w|y|l|m|n}
// TODO : find the examples
// rule 34 : peCP -> pe-CP where C != {r|w|y|l|m|n} and P != 'er'
$data[] = array('petarung', 'tarung');
// CS additional rules
// rule 35 : terC1erC2 -> ter-C1erC2 where C1 != 'r'
$data[] = array('terpercaya', 'percaya');
// rule 36 : peC1erC2 -> pe-C1erC2 where C1 != {r|w|y|l|m|n}
$data[] = array('pekerja', 'kerja');
$data[] = array('peserta', 'serta');
// CS modify rule 12
$data[] = array('mempengaruhi', 'pengaruh');
// CS modify rule 16
$data[] = array('mengkritik', 'kritik');
// CS adjusting rule precedence
$data[] = array('bersekolah', 'sekolah');
$data[] = array('bertahan', 'tahan');
$data[] = array('mencapai', 'capai');
$data[] = array('dimulai', 'mulai');
$data[] = array('petani', 'tani');
$data[] = array('terabai', 'abai');
// ECS
$data[] = array('mensyaratkan', 'syarat');
$data[] = array('mensyukuri', 'syukur');
$data[] = array('mengebom', 'bom');
$data[] = array('mempromosikan', 'promosi');
$data[] = array('memproteksi', 'proteksi');
$data[] = array('memprediksi', 'prediksi');
$data[] = array('pengkajian', 'kaji');
$data[] = array('pengebom', 'bom');
// ECS loop pengembalian akhiran
$data[] = array('bersembunyi', 'sembunyi');
$data[] = array('bersembunyilah', 'sembunyi');
$data[] = array('pelanggan', 'langgan');
$data[] = array('pelaku', 'laku');
$data[] = array('pelangganmukah', 'langgan');
$data[] = array('pelakunyalah', 'laku');
$data[] = array('perbaikan', 'baik');
$data[] = array('kebaikannya', 'baik');
$data[] = array('bisikan', 'bisik');
$data[] = array('menerangi', 'terang');
$data[] = array('berimanlah', 'iman');
$data[] = array('memuaskan', 'puas');
$data[] = array('berpelanggan', 'langgan');
$data[] = array('bermakanan', 'makan');
// CC (Modified ECS)
$data[] = array('menyala', 'nyala');
$data[] = array('menyanyikan', 'nyanyi');
$data[] = array('menyatakannya', 'nyata');
$data[] = array('penyanyi', 'nyanyi');
$data[] = array('penyawaan', 'nyawa');
// CC infix
$data[] = array('rerata', 'rata');
$data[] = array('lelembut', 'lembut');
$data[] = array('lemigas', 'ligas');
$data[] = array('kinerja', 'kerja');
// plurals
$data[] = array('buku-buku', 'buku');
$data[] = array('berbalas-balasan', 'balas');
$data[] = array('bolak-balik', 'bolak-balik');
// combination of prefix + suffix
$data[] = array('bertebaran', 'tebar');
$data[] = array('terasingkan', 'asing');
$data[] = array('membangunkan', 'bangun');
$data[] = array('mencintai', 'cinta');
$data[] = array('menduakan', 'dua');
$data[] = array('menjauhi', 'jauh');
$data[] = array('menggilai', 'gila');
$data[] = array('pembangunan', 'bangun');
// return the word if not found in the dictionary
$data[] = array('marwan', 'marwan');
$data[] = array('subarkah', 'subarkah');
// recursively remove prefix
$data[] = array('memberdayakan', 'daya');
$data[] = array('persemakmuran', 'makmur');
$data[] = array('keberuntunganmu', 'untung');
$data[] = array('kesepersepuluhnya', 'sepuluh');
// test stem sentence
$data[] = array('siapakah memberdayakan pembangunan', 'siapa daya bangun');
// issues
$data[] = array('Perekonomian', 'ekonomi');
$data[] = array('menahan', 'tahan');
// test stem multiple sentences
$multipleSentence1 = 'Cinta telah bertebaran.Keduanya saling mencintai.';
$multipleSentence2 = "(Cinta telah bertebaran)\n\n\n\nKeduanya saling mencintai.";
$data[] = array($multipleSentence1, 'cinta telah tebar dua saling cinta');
$data[] = array($multipleSentence2, 'cinta telah tebar dua saling cinta');
// failed on other method / algorithm but we should succeed
$data[] = array('peranan', 'peran');
$data[] = array('memberikan', 'beri');
$data[] = array('medannya', 'medan');
// TODO:
//$data[] = array('sebagai', 'bagai');
//$data[] = array('bagian', 'bagian');
//$data[] = array('berbadan', 'badan');
//$data[] = array('abdullah', 'abdullah');
// adopted foreign suffixes
//$data[] = array('budayawan', 'budaya');
//$data[] = array('karyawati', 'karya');
$data[] = array('idealis', 'ideal');
$data[] = array('idealisme', 'ideal');
$data[] = array('finalisasi', 'final');
// sastrawi additional rules
$data[] = array('penstabilan', 'stabil');
$data[] = array('pentranskripsi', 'transkripsi');
$data[] = array('mentaati', 'taat');
$data[] = array('meniru-nirukan', 'tiru');
$data[] = array('menyepak-nyepak', 'sepak');
$data[] = array('melewati', 'lewat');
$data[] = array('menganga', 'nganga');
$data[] = array('kupukul', 'pukul');
$data[] = array('kauhajar', 'hajar');
$data[] = array('kuasa-Mu', 'kuasa');
$data[] = array('malaikat-malaikat-Nya', 'malaikat');
$data[] = array('nikmat-Ku', 'nikmat');
$data[] = array('allah-lah', 'allah');
return $data;
}