Skip to main content

Saka-NLP: Indonesian Language Processing with Prompting and Agentic AI Support

Project description

Saka: Indonesian NLP with Prompting and Agentic AI Support 🇮🇩

Bahasa Indonesia | English

PyPI version Documentation Colab DOI

Saka (Bahasa Jawa/Sunda: Tiang Penyangga) adalah sebuah architectural framework modern untuk pemrosesan teks Bahasa Indonesia dan daerah yang dibangun dengan prinsip asinkron, modular, dan cerdas.


📌 Daftar Isi


✨ Fitur Unggulan

Fitur Deskripsi
Async Processing Pemrosesan non-blocking untuk dataset skala besar.
🧩 Modular Design Komponen plug-and-play yang mudah diintegrasikan.
🧠 Morphology Analyzer Analisis imbuhan hibrida dengan Morphophonemic Restructuring.
📖 Live KBBI Ekstraksi arti kata langsung dari situs resmi KBBI.
🤖 Agentic AI Orchestration prompt LLM, Multi-Agent, dan Tool Calling.
🔠 Aksara Nusantara Transliterasi Aksara Sunda, Jawa, dan Bali.
🔗 Dynamic Compounds Pemisahan kata majemuk otomatis via dataset JSON dinamis.

🚀 Instalasi

Pastikan menggunakan Python 3.8+.

# Via PyPI (Rekomendasi)
pip install saka-nlp

# Via Source (Development)
git clone https://github.com/Muhammad-Ikhwan-Fathulloh/Saka-NLP.git
cd Saka-NLP && pip install -e .

📖 Penggunaan Dasar

Saka-NLP didesain agar intuitif. Cukup import saka.

1. Tokenisasi & Normalisasi
import saka

# Tokenisasi
tokens = saka.tokenize("Halo, apa kabar?") 
# ['Halo', ',', 'apa', 'kabar', '?']

# Normalisasi Slang
normalized = saka.normalize("klo gimana gw") 
# 'kalau bagaimana saya'
2. Morfologi & KBBI
import saka

# Analisis Morfologi (Handle kata majemuk & peleburan)
print(saka.analyze("menyebarluaskan"))
# {'root': 'sebar luas', ...}

# Live KBBI Search
res = saka.query_kbbi("belajar")
3. Stopwords Nusantara
import saka
# Mendukung: id, sunda, jawa, bali, minang, en, jaksel
stops = saka.get_stopwords("minang")

🤖 Agentic AI & Prompting

Membangun aplikasi berbasis LLM dengan kontrol penuh atas prompt dan output.

import saka

# 1. Token Optimization via Local Formatting
data = [{"id": 1, "text": "Saka"}]
output = saka.OutputFormatter.format(data, "json")

# 2. Structured Prompt Builder
prompt = saka.build_prompt(role="Analist", task="Klasifikasi", input_data="Teks...")

# 3. Agent & Tool Calling
bot = saka.Agent("Asisten", "Membantu user")
bot.add_tool(name="calc", desc="Hitung", func=lambda x: x*2)

📊 Saka-Eval Benchmark

Evaluasi model NLP Anda dengan dataset standar Indonesia secara asinkron.

from saka.evaluation.benchmarker import SakaEval

evaluator = SakaEval(task="sentiment")
evaluator.load_hf_dataset("Muhammad-Ikhwan-Fathulloh/Saka-Eval")

results = await evaluator.evaluate(model, text="text", label="label")
print(f"Accuracy: {results['metrics']['accuracy']:.2%}")

🌏 Ekosistem Nusantara

Dukungan mendalam untuk bahasa daerah (Kamus & Aksara).

Klik untuk melihat detail Aksara (Sunda, Jawa, Bali)

Aksara Sunda (Ngalagena)

Latin Aksara Latin Aksara
ha na
ca ra
... ... ... ...

Aksara Jawa (Nglegena)

Latin Aksara Latin Aksara
ha na
... ... ... ...

(Tabel lengkap tersedia di Dokumentasi Web)

🔗 Dynamic Compound Handling

Saka-NLP kini mendukung pemisahan kata majemuk secara dinamis melalui compounds.json.

  • Indonesian: menyebarluaskansebar luas, kerjasamakerja sama
  • Sunda: hulunagarahulu nagara, indungsukuindung suku
  • Minang: bundokanduangbundo kanduang, ranahminangranah minang

🛠️ CLI & Sitasi

CLI Usage

saka --help
saka --normalize "ngapain ke kampus klo libur"

Citation

@software{Fathulloh_Saka-NLP_2026,
  author = {Fathulloh, Muhammad Ikhwan},
  title = {{Saka-NLP: Indonesian NLP Toolkit}},
  year = {2026},
  version = {0.2.4},
  doi = {10.5281/zenodo.20092640},
  url = {https://github.com/Muhammad-Ikhwan-Fathulloh/Saka-NLP}
}

❤️ Credits & Support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

saka_nlp-0.2.4.tar.gz (430.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

saka_nlp-0.2.4-py3-none-any.whl (446.1 kB view details)

Uploaded Python 3

File details

Details for the file saka_nlp-0.2.4.tar.gz.

File metadata

  • Download URL: saka_nlp-0.2.4.tar.gz
  • Upload date:
  • Size: 430.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for saka_nlp-0.2.4.tar.gz
Algorithm Hash digest
SHA256 c39459731f913327f1014410f5eb5fbb51dd2651d31a8839cedb7bef31855b40
MD5 1a728d7801646574b4dcbf93e4f2987d
BLAKE2b-256 36e981bffab104771018579760465b2e3d97a9917d186d490078d860d542e5db

See more details on using hashes here.

File details

Details for the file saka_nlp-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: saka_nlp-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 446.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for saka_nlp-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1f81fc3f73fbdf980d18cc5c5766794f78e0665c80cd2610ffd7c68ed17ca75e
MD5 8d2b8688b4985eb2551bcd880bc6cff3
BLAKE2b-256 13808461366f523ad78c9e6a7073a6157b02da07f4343ae5c80dc24805ec21cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page