Reference Documentation
Panduan lengkap teknis untuk setiap fungsi (methods) dan kapabilitas dalam arsitektur library Saka-NLP.
📦 Panduan Instalasi
Saka-NLP sangat mudah diinstalasi dan dikelola secara resmi melalui repositori Python Package Index (PyPI). Pastikan Anda menggunakan versi Python minimal 3.8.
pip install saka-nlp
Jika Anda tertarik untuk berpartisipasi dan berkontribusi secara mandiri (*source installation*):
git clone https://github.com/Muhammad-Ikhwan-Fathulloh/Saka-NLP.git
cd Saka-NLP
pip install -e .
Pemrosesan Dasar: tokenize
Membelah kalimat Indonesia yang rumit menjadi token-token individual, melestarikan tanda baca dengan cerdas.
| Parameter | Type | Keterangan |
|---|---|---|
text |
str |
Teks string murni yang ingin dipecah ke dalam representasi token. |
import saka
tokens = saka.tokenize("Halo, apa kabar Dunia-ku?!")
print(tokens)
# Output: ['Halo', ',', 'apa', 'kabar', 'Dunia-ku', '?', '!']
Note: Tersedia juga versi asynchronous
await saka.async_tokenize(text) untuk pemrosesan dataset besar berbasis event loop.
Pemurnian Bahasa: normalize
Melakukan standardisasi bahasa gaul (Slang), *typographical error* umum ke dalam standar formal tata bahasa Indonesia.
import saka
text = saka.normalize("gmn nih bro klo bsk ujiann")
print(text)
# Output: "bagaimana ini saudara kalau besok ujian"
Morfologi Tingkat Tinggi: analyze
Sistem heuritistik komprehensif yang mengatasi stemming konvensional. Fitur ini dilengkapi Morphophonemic Fix untuk peleburan kata dan Dictionary Early Stopping via leksikon daerah untuk mencegah over-stemming.
import saka
# Morphophonemic Fusion (meny + sebar luas)
res = saka.analyze("menyebarluaskan")
print(res["root"]) # Output: 'sebar luas'
# Validasi kamus daerah (Early Stopping via Sunda/Jawa)
res2 = saka.analyze("dipikanyaah")
print(res2["regional_matches"]) # Output: ['sunda']
Penyaringan Kata: get_stopwords
Memanggil *set* berisi daftar stopwords Nusantara dengan kecepatan baca O(1).
Argumen lang |
Cakupan *Corpus* |
|---|---|
"all" (Default) |
Semua stopwords (Indo, Sunda, Jawa) dikombinasikan. (817+ kata) |
"id" |
Eksklusif Stopwords Indonesia versi Tala Dataset. |
"sunda" / "jawa" / "bali" |
Eksklusif Stopwords region yang diminta. |
import saka
# 1. Mengambil semua stopword (Indonesia, Sunda, Jawa digabung)
all_stops = saka.get_stopwords("all")
print(f"Total Stopwords Gabungan: {len(all_stops)}") # Output: 817+
# 2. Mengambil stopword khusus Sunda
sunda_stops = saka.get_stopwords("sunda")
print(f"Apakah 'saha' adalah stopword? {'saha' in sunda_stops}") # Output: True
Integrasi Daring: query_kbbi
Pencarian arti kata langsung mengekstraksi situs resmi Kemendikbud menggunakan pendekatan Web Scraping *Real-time*.
import saka
res = saka.query_kbbi("mahakarya")
print(res["definitions"])
# Output: ['karya besar', 'karya gemilang']
Ekosistem & Leksikon Sunda
Saka-NLP memiliki modul khusus Bahasa Sunda untuk meretrieve definisi secara lokal dan bertukar Aksara.
def latin_to_aksara_sunda(text: str) -> str
def aksara_sunda_to_latin(text: str) -> str
import saka
# Dictionary Definition Search
res = saka.query_sundadigi("wilujeng")
print(res["definitions"]["arti"]) # Output: selamat
# Transliteration
print(saka.latin_to_aksara_sunda("saka")) # Output: ᮞᮊ
Ekosistem & Leksikon Jawa
Sinkronisasi offline kamus bahasa Jawa dan modul konversi Hanacaraka berbasis tata tulis Keraton/Sastra.
def latin_to_aksara_jawa(text: str) -> str
def aksara_jawa_to_latin(text: str) -> str
import saka
# Dictionary Definition Search
res = saka.query_sastra("sugeng")
print(res["definitions"][0]["arti"]) # Output: selamat, sejahtera
# Transliterasi Aksara Jawa
print(saka.latin_to_aksara_jawa("hanacaraka")) # Output: ꦲꦤꦕꦫꦏ
Ekosistem & Leksikon Bali
Integrasi BASAbali Wiki untuk pencarian leksikal dan dukungan transliterasi Aksara Bali (Wreastra) yang komprehensif.
def latin_to_aksara_bali(text: str) -> str
def aksara_bali_to_latin(text: str) -> str
import saka
# Dictionary Definition Search (Offline Fallback)
res = saka.query_basabali("rahajeng")
print(res["definitions"][0]["arti"]) # Output: selamat
# Transliterasi Aksara Bali (Latin -> Aksara)
aksara = saka.latin_to_aksara_bali("bali 2026.")
print(aksara) # Output: ᬩᬮᬶ ᭒᭐᭒᭖᭟