Skip to content
This repository has been archived by the owner on Dec 19, 2022. It is now read-only.
/ akarata Public archive

Indonesian stemmer - Pustaka JavaScript untuk mengambil kata dasar dari kata berimbuhan pada bahasa Indonesia.

License

Notifications You must be signed in to change notification settings

ikhsanalatsary/akarata

Repository files navigation

Akarata

Build Status codecov npm Greenkeeper badge

README English version

Akarata adalah pustaka JavaScript untuk mengambil akar kata/suku kata(stem) dari kata yang berimbuhan awal ataupun akhir pada bahasa Indonesia. Akarata diambil dari kata "akar kata", agar lebih pendek saat penyebutannya.

Akarata diilhami dari stem kata bahasa Indonesia berdasarkan Porter Stemmer, dengan menggunakan algoritma yang dipaparkan dalam paper A Study of Stemming Effects on Information Retrieval in Bahasa Indonesia, oleh Fadillah Z Tala.

Akarata dibuat secara umum bisa berjalan di server menggunakan Node.js maupun di browser terbaru bahkan di react-native sekalipun. Namun perlu memperhatikan kompatibilitas dari platform tersebut. Cek di Kompatibilitas fungsi

Dibutuhkan

tslib >= 1.9.0

Instalasi

npm:

npm install --save tslib akarata

yarn:

yarn add tslib akarata

Kompatibilitas fungsi

Karena akarata di dalam fungsinya menggunakan Array.includes. Maka jika anda menggunakan akarata pada Node.js versi 4, browser Edge < v14, IE, Chrome < v47, Firefox < 43, Safari < v9 dan lain-lain(lihat tabel) maka membutuhkan polyfill. Untuk caranya bisa lihat di bagian Menambah polyfill

Menambah polyfill

Lewati langkah ini jika platform didukung.

Menggunakan npm:

npm i ts-polyfill

Menggunakan yarn:

yarn add ts-polyfill

Gunakan polyfill

Muat ini sebelum memuat pustaka akarata, biasanya taruh diatasnya.

pada node.js:

require('ts-polyfill/lib/es2016-array-include');

pada ES2015+ / Babel / TypeScript:

import 'ts-polyfill/lib/es2016-array-include';

Hanya menggunakan script tag:

Jika tidak ingin melakukan instalasi ts-polyfill dan hanya menjalankan di browser. Maka salin kode yang ada di dokumentasi polyfill

<script type="javascript">
  // salin kode disini
<script>

Penggunaan

Muat pustaka akarata

ES2015+ / Babel / TypeScript:

// muat pustakanya
import * as akarata from 'akarata';
// or
import akarata from 'akarata';

CommonJS/ UMD / NodeJS:

// muat pustakanya
var akarata = require('akarata');

Michael Jackson script/ MJS / NodeJS experimental-modules:

// muat pustakanya
import * as akarata from 'akarata';
// or
import akarata from 'akarata';

unpkg.com:

// sejak akarata versi > 0.1.5
// unpkg.com/:package@:version/:file
// catatan `.min` menandakan versi kompres-nya
// sebagai contoh
import * as akarata from 'https://unpkg.com/akarata@0.2.0/bundles/index.esm.js';
// atau
import akarata from 'https://unpkg.com/akarata@0.2.0/bundles/index.esm.min.js';

// atau url absolut, secara implisit ke bundles/index.umd.js
import akarata from 'https://unpkg.com/akarata';

Kemudian bisa digunakan:

// panggil fungsi stem
akarata.stem('menikah'); // nikah

Atau mencobanya langsung dari web: akarata.netlify.com.

Masalah

Karena pustaka ini masih tahap development, jika diketahui ada masalah silakan buat tiket baru

Berkontribusi

Awalnya, pustaka ini merupakan implementasi dari sistem penganalisis untuk Bahasa Indonesia, dari proyek Apache Lucene, ke dalam bahasa JavaScript.

Referensi

  1. Situs Resmi Kamus Bahasa Indonesia
  2. Untuk mencari dan memverifikasi kata Bahasa Indonesia, Kateglo Bahtera
  3. Artikel Wikipedia yang berjudul Prefiks dalam Bahasa Indonesia

Langkah-langkah

  1. Proyek ini membutuhkan versi Node.js >= 8.5
  2. Fork proyek ini
  3. Buat branch untuk fitur Anda (git checkout -b my-new-feature)
  4. Buat tes kasus untuk fitur anda pada folder __tests__ dan jalankan npm test
  5. Commit perubahan-perubahan yang Anda buat (git commit -am 'Tambahkan fitur baru')
  6. Push ke branch itu (git push origin my-new-feature)
  7. Ajukan Pull Request baru

Terima kasih

Setelah bersyukur kepada Allah Subhanahu Wa Ta'ala, kami ingin mengucapkan terima kasih kepada:

  • Fadillah Z Tala & Apache Lucene sehingga kami dapat mulai membuat pustaka ini
  • Penyedia Kateglo Bahtera, karena telah menyediakan API nya sehingga saya bisa memilih & memisahkan kata-kata ambigu, dan akhirnya memeriksa validitas hasil kata.
  • Adinda Praditya & Indonesian Stemmer. Beliau sebagai coach dan berkat pustakanya maka pustaka ini bisa diimplementasi ke dalam bahasa JavaScript.