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
tslib >= 1.9.0
npm:
npm install --save tslib akarata
yarn:
yarn add tslib akarata
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
Lewati langkah ini jika platform didukung.
Menggunakan npm
:
npm i ts-polyfill
Menggunakan yarn
:
yarn add ts-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';
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>
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';
// panggil fungsi stem
akarata.stem('menikah'); // nikah
Atau mencobanya langsung dari web: akarata.netlify.com.
Karena pustaka ini masih tahap development, jika diketahui ada masalah silakan buat tiket baru
Awalnya, pustaka ini merupakan implementasi dari sistem penganalisis untuk Bahasa Indonesia, dari proyek Apache Lucene, ke dalam bahasa JavaScript.
- Situs Resmi Kamus Bahasa Indonesia
- Untuk mencari dan memverifikasi kata Bahasa Indonesia, Kateglo Bahtera
- Artikel Wikipedia yang berjudul Prefiks dalam Bahasa Indonesia
- Proyek ini membutuhkan versi Node.js >= 8.5
- Fork proyek ini
- Buat branch untuk fitur Anda (
git checkout -b my-new-feature
) - Buat tes kasus untuk fitur anda pada folder
__tests__
dan jalankannpm test
- Commit perubahan-perubahan yang Anda buat (
git commit -am 'Tambahkan fitur baru'
) - Push ke branch itu (
git push origin my-new-feature
) - Ajukan Pull Request baru
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.