🚀 Panduan Instalasi
Pastikan versi Python Anda adalah Python 3.8 atau lebih baru.
Opsi 1: Instalasi Via PyPI (Direkomendasikan)
Gunakan perintah ini untuk rilis stabil Saka-NLP.
pip install saka-nlp
Opsi 2: Instalasi dari Source Code
Gunakan langkah ini jika Anda ingin turut berkontribusi atau menggunakan versi pengembangan.
# 1. Clone repository
git clone https://github.com/Muhammad-Ikhwan-Fathulloh/Saka-NLP.git
cd Saka-NLP
# 2. Instal library beserta dependency
pip install -e .
📖 Panduan Penggunaan Modul Inti
00 Cek Versi
Impor library tunggal untuk mengakses seluruh pilar pemrosesan.
import saka
print(saka.__version__)
# Output: 0.2.5
01 Tokenisasi Cerdas
Memecah teks menjadi unit terkecil secara akurat.
import saka
text = "Belajar sambil beramal di era konektivitas."
tokens = saka.tokenize(text)
print(tokens)
# Output: ['Belajar', 'sambil', 'beramal', 'di', 'era', 'konektivitas']
02 Normalisasi Bahasa Gaul
Menggunakan slang lexicon yang kuat dari data sosial media.
import saka
normalized = saka.normalize("klo gimana gw")
print(normalized)
# Output: 'kalau bagaimana saya'
03 Analisis Morfologi Mutakhir
Pemulihan leburan afiks (*Morphophonemic*) dan Validasi hibrida berbasis Dictionary Early Stopping.
import saka
# Pemulihan akar afiks melebur
analysis = saka.analyze("menyebarluaskan")
print(analysis["root"]) # Output: sebar luas
# Validasi kamus daerah (Sunda & Minang)
print(saka.analyze("dipikanyaah")["regional_matches"]) # Output: ['sunda']
print(saka.analyze("bundokanduang")["root"]) # Output: bundo kanduang
04 Integrasi Live KBBI
Mengurai jawaban langsung dari database KBBI Kemendikbudristek secara real-time.
import saka
kbbi_result = saka.query_kbbi("belajar")
if kbbi_result["status"] == "found":
for arti in kbbi_result["definitions"]:
print(f"Arti: {arti}")
# Output:
# Arti: petunjuk yang diberikan kepada orang supaya diketahui...
# Arti: berusaha memperoleh kepandaian atau ilmu...
05 Stopwords Nusantara & Internasional
Koleksi Stopwords (Indo, Sunda, Jawa, Bali, Jaksel, English) dengan performa baca O(1).
import saka
#// Ambil stopword spesifik bahasa (contoh: Sunda)
sunda_stops = saka.get_stopwords("sunda")
print(f"Apakah 'saha' adalah stopword? {'saha' in sunda_stops}")
// Ambil stopword spesifik bahasa Jawa
jawa_stops = saka.get_stopwords("jawa")
// Ambil stopword spesifik bahasa Bali
bali_stops = saka.get_stopwords("bali")
// Ambil semua stopword (gabungan semua bahasa)
all_stops = saka.get_stopwords("all")
print(f"Total stopwords: {len(all_stops)}")
// Ambil stopword spesifik bahasa Gaul Jaksel
jaksel_stops = saka.get_stopwords("jaksel")
print(f"Jaksel stopword? {'literally' in jaksel_stops}")
06 Prompt Builder LLM
Merakit struktur prompt ideal untuk LLM beserta fitur optimasi token dan parsing output otomatis.
import saka
prompt = saka.build_prompt(
instruction="Klasifikasikan sentimen.",
input_data="Keren bgt tpi mahal parah",
output_indicator="JSON",
optimize_text=True
)
# Mengurai respons LLM ke tipe data bawaan Python
hasil = saka.parse_llm_output(llm_response, format_type="json")
07 Saka-Eval Benchmark
Modul pembanding performa model NLP untuk dataset Bahasa Indonesia (Sentiment/NER).
from saka.evaluation.benchmarker import SakaEval
evaluator = SakaEval(task="sentiment")
evaluator.load_hf_dataset("Muhammad-Ikhwan-Fathulloh/Saka-Eval", name="sentiment")
results = await evaluator.evaluate(model, text="text", label="label")
08 Ekosistem Sunda
Dukungan kamus digital SundaDigi dan transliterasi Aksara Sunda (Ngalagena) yang presisi.
import saka
# Kamus Sunda (SundaDigi)
res = saka.query_sundadigi("wilujeng")
print(res["definitions"]["arti"]) # Output: selamat
# Transliterasi Aksara Sunda
aksara = saka.latin_to_aksara_sunda("saka")
print(aksara) # Output: ᮞᮊ
| Ngalagena | ha(ᮠ), na(ᮔ), ca(ᮎ), ra(ᮛ), ka(ᮊ), da(ᮓ), ta(ᮒ), sa(ᮞ), wa(ᮝ), la(ᮜ), pa(ᮕ), ja(ᮏ), ya(ᮚ), nya(ᮑ), ma(ᮙ), ga(ᮌ), ba(ᮘ), nga(ᮍ) |
09 Ekosistem Jawa
Integrasi Leksikon Sastra.org dan mesin transliterasi Hanacaraka (Nglegena) yang akurat.
import saka
# Kamus Jawa (Sastra.org)
res = saka.query_sastra("sugeng")
print(res["definitions"][0]["arti"]) # Output: selamat
# Transliterasi Aksara Jawa
aksara = saka.latin_to_aksara_jawa("hanacaraka")
print(aksara) # Output: ꦲꦤꦕꦫꦏ
| Nglegena | ha(ꦲ), na(ꦤ), ca(ꦕ), ra(ꦫ), ka(ꦏ), da(ꦢ), ta(ꦠ), sa(ꦱ), wa(ꦮ), la(ꦭ), pa(ꦥ), dha(ꦝ), ja(ꦗ), ya(ꦪ), nya(ꦚ), ma(ꦩ), ga(ꦒ), ba(ꦧ), tha(ꦛ), nga(ꦔ) |
10 Ekosistem Bali
Pemanfaatan BASAbali Wiki dan dukungan penuh Aksara Bali (Wreastra) beserta angka dan tanda baca.
import saka
# Kamus Bali (BASAbali)
res = saka.query_basabali("rahajeng")
print(res["definitions"][0]["arti"]) # Output: selamat
# Transliterasi Aksara Bali
aksara = saka.latin_to_aksara_bali("bali 2026")
print(aksara) # Output: ᬩᬮᬶ ᭒᭐᭒᭖
| Wreastra | ha(ᬳ), na(ᬦ), ca(ᬘ), ra(ᬭ), ka(ᬓ), da(ᬤ), ta(ᬢ), sa(ᬲ), wa(ᬯ), la(ᬮ), ma(ᬫ), pa(ᬧ), ga(ᬕ), ja(ᬚ), ya(ᬬ), nya(ᬜ) |
| Angka | 0(᭐), 1(᭑), 2(᭒), 3(᭓), 4(᭔), 5(᭕), 6(᭖), 7(᭗), 8(᭘), 9(᭙) |
11 Terminal CLI
Akses fitur Saka-NLP langsung dari terminal tanpa skrip Python.
saka --help
saka --stem "dimakan"
saka --normalize "ngapain ke kampus klo libur"
🤝 Ingin Berkontribusi?
Saka-NLP adalah proyek open-source. Kami sangat terbuka bagi siapa saja yang ingin membantu memperkuat pilar NLP Nusantara.
Ke Repository GitHub📚 Sitasi (Citation)
Jika Anda menggunakan Saka-NLP dalam penelitian atau proyek Anda, mohon sitasi menggunakan format berikut:
APA
Note: Anda dapat menyitasi seluruh versi Saka-NLP menggunakan DOI 10.5281/zenodo.20092640. DOI ini mewakili seluruh versi dan akan selalu mengarah ke versi terbaru.
BibTeX
@software{Fathulloh_Saka-NLP_2026,
author = {Fathulloh, Muhammad Ikhwan},
title = {{Saka-NLP: Indonesian NLP Toolkit for Tokenization and Slang Normalization}},
month = {5},
year = {2026},
publisher = {Zenodo},
version = {0.2.5},
doi = {10.5281/zenodo.20092640},
url = {https://github.com/Muhammad-Ikhwan-Fathulloh/Saka-NLP}
}
🗄️ Referensi & Sumber Data
- Standard DatasetsCarant-AI (Sentiment), Kiuyha (NER), IndoNLU (Task), Tala (Stopwords).
- KBBI DaringSumber data leksikal resmi Kemendikbud.
- RegionalSundaDigi (Sunda), Sastra.org (Jawa), BASAbali Wiki (Bali).
- LibrariesHuggingFace Datasets, scikit-learn, BeautifulSoup4, Emoji.
❤️ Dukung Proyek Ini
Bantu pengembangan Saka-NLP agar lebih baik lagi.