Awesome
Akarata
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
- Situs Resmi Kamus Bahasa Indonesia
- Untuk mencari dan memverifikasi kata Bahasa Indonesia, Kateglo Bahtera
- Artikel Wikipedia yang berjudul Prefiks dalam Bahasa Indonesia
Langkah-langkah
- 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
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.