-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
92 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,93 @@ | ||
# Android Sastrawi | ||
Android Sastrawi is a Natural Language Processing Toolkit for Bahasa Indonesia. It is port from original [Sastrawi](https://github.com/sastrawi/sastrawi) project | ||
Android Sastrawi is a Natural Language Processing Toolkit for Bahasa Indonesia. It is port from original [Sastrawi](https://github.com/sastrawi/sastrawi) project. | ||
|
||
# Fitur | ||
## Stemming | ||
### Apa itu Stemming? | ||
[Stemming](https://en.wikipedia.org/wiki/Stemming) adalah proses mengubah kata yang berimbuhan menjadi kata dasar. | ||
|
||
Contohnya | ||
``` | ||
berlari => lari | ||
mengandai-andaikan => andai | ||
``` | ||
### Cara Penggunaan | ||
Untuk membuat stemmer bisa menggunakan perintah berikut | ||
``` | ||
val stemmer = StemmerFactory(context).create() | ||
``` | ||
cara diatas akan menggunakan [kamus kata dasar bawaan](https://github.com/share424/Android-Sastrawi/raw/master/sastrawi/src/main/assets/kata_dasar.txt) dari (kateglo)[kateglo.com] | ||
|
||
Selanjutnya kita bisa langsung melakukan stemming dengan method `stem()`, seperti berikut | ||
``` | ||
val output = stemmer.stem("Perekonomian Indonesia sedang dalam pertumbuhan yang membanggakan") | ||
// output = ekonomi indonesia sedang dalam tumbuh yang bangga | ||
``` | ||
Jika ingin menggunakan kamus kata dasar sendiri, bisa menggunakan method `fromFile()` untuk dari file dan `fromList()` untuk dari `List<String>`. Contohnya seperti berikut | ||
``` | ||
// kamus kata dasar dari file txt | ||
// format file dipisah dengan enter tiap katanya | ||
val file = File("path to file.txt") | ||
val stemmerFromFile = StemmerFactory(context) | ||
.fromFile(file) | ||
.create() | ||
// kamus kata dasar dari List<string> | ||
val list = listOf<String>("jalan", "tumbuh", "bangga") | ||
val stemmerFromList = StemmerFactory(context) | ||
.fromList(list) | ||
.create() | ||
``` | ||
## Stop Word Remover | ||
### Apa itu Stop Word? | ||
[Stop Words](https://en.wikipedia.org/wiki/Stop_words) adalah kumpulan kata yang akan dihilangkan sebelum dilakukan proses NLP. | ||
|
||
Contohnya | ||
``` | ||
di, ke, yang, untuk, pada, .... | ||
``` | ||
### Penggunaan | ||
Untuk membuat Stop Word Remover bisa menggunakan perintah berikut | ||
``` | ||
val stopWordRemover = StopWordRemoverFactory(context).create() | ||
``` | ||
cara diatas akan menggunakan [kamus stop word bawaan](https://github.com/share424/Android-Sastrawi/raw/master/sastrawi/src/main/assets/stop_words.txt). | ||
|
||
Selanjutnya kita bisa menghilangkan stopword dengan method `remove()`, seperti berikut | ||
``` | ||
val output = stopWordRemover.remove("Perekonomian Indonesia sedang dalam pertumbuhan yang membanggakan") | ||
// output = perekonomian indonesia sedang pertumbuhan membanggakan | ||
``` | ||
Jika ingin menggunakan kamus stop words sendiri, bisa menggunakan method `fromFile()` untuk dari file dan `fromList()` untuk dari `List<String>`. Contohnya seperti berikut | ||
``` | ||
// kamus stop words dari file txt | ||
// format file dipisah dengan enter tiap katanya | ||
val file = File("path to file.txt") | ||
val stopWordRemoverFromFile = StopWordRemoverFactory(context) | ||
.fromFile(file) | ||
.create() | ||
// kamus stop words dari List<string> | ||
val list = listOf<String>("di", "ke", "yang") | ||
val stopWordRemoverFromList = StopWordRemoverFactory(context) | ||
.fromList(list) | ||
.create() | ||
``` | ||
# 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](http://kateglo.com) dengan sedikit perubahan. | ||
# Lisensi | ||
Lisensi sastrawi adalah [MIT](http://choosealicense.com/licenses/mit/) License (MIT) sedangkan lisensi kamus kata dasar dari Kateglo adalah [CC-BY-NC-SA 3.0](https://github.com/ivanlanin/kateglo#lisensi-isi). | ||
# Di Bahasa Pemrograman Lainya | ||
- [Sastrawi](https://github.com/sastrawi/sastrawi) - PHP | ||
- [JSastrawi](https://github.com/jsastrawi/jsastrawi) - Java | ||
- [cSastrawi](https://github.com/mohangk/c_sastrawi) - C | ||
- [PySastrawi](https://github.com/har07/PySastrawi) - Python | ||
- [Go-Sastrawi](https://github.com/RadhiFadlillah/go-sastrawi) - Go | ||
- [Sastrawi-Ruby](https://github.com/meisyal/sastrawi-ruby) - Ruby | ||
- [SastrawiJs](https://github.com/damzaky/sastrawijs) - Javascript |