Saka NLP

Saka (Bahasa Jawa/Sunda) berarti "tiang penyangga". Sebuah architectural framework modern yang solid untuk pemrosesan teks Bahasa Indonesia dan daerah.

📖 Docs 📦 Install via PyPI 📝 Medium Blog 📓 Google Colab ⭐ GitHub

🚀 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.

python
import saka

print(saka.__version__)
# Output: 0.1.9

01 Tokenisasi Cerdas

Memecah teks menjadi unit terkecil secara akurat.

python
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.

python
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.

python
import saka

# Pemulihan akar afiks melebur
analysis = saka.analyze("menyebarluaskan")
print(analysis["root"]) # Output: sebar luas

# Validasi kamus daerah (*Early Stopping*)
analysis2 = saka.analyze("dipikanyaah")
print(analysis2["regional_matches"]) # Output: ['sunda']

04 Integrasi Live KBBI

Mengurai jawaban langsung dari database KBBI Kemendikbudristek secara real-time.

python
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

Koleksi Stopwords (Indo, Sunda, Jawa, Bali) dengan dukungan pencarian spesifik (O(1) Search).

python
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 (Indo + Sunda + Jawa + Bali)
all_stops = saka.get_stopwords("all")
print(f"Total stopwords: {len(all_stops)}")

06 Ekosistem Sunda

Dukungan kamus digital SundaDigi dan transliterasi Aksara Sunda (Ngalagena) yang presisi.

python
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(ᮍ)

07 Ekosistem Jawa

Integrasi Leksikon Sastra.org dan mesin transliterasi Hanacaraka (Nglegena) yang akurat.

python
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(ꦔ)

08 Ekosistem Bali

Pemanfaatan BASAbali Wiki dan dukungan penuh Aksara Bali (Wreastra) beserta angka dan tanda baca.

python
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(᭙)

09 Terminal CLI

Akses fitur Saka-NLP langsung dari terminal tanpa skrip Python.

bash
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

🗄️ Referensi & Sumber Data