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


bash
pip install saka-nlp

Jika Anda tertarik untuk berpartisipasi dan berkontribusi secara mandiri (*source installation*):


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

def tokenize(text: str) -> List[str]
Parameter Type Keterangan
text str Teks string murni yang ingin dipecah ke dalam representasi token.
python
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.

def normalize(text: str) -> str
python
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.

def analyze(word: str) -> Dict[str, Any]
python
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).

def get_stopwords(lang: str = "all") -> Set[str]
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.
python
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*.

def query_kbbi(word: str) -> Dict[str, Any]
python
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 query_sundadigi(word: str) -> Dict[str, Any]
def latin_to_aksara_sunda(text: str) -> str
def aksara_sunda_to_latin(text: str) -> str
python
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 query_sastra(word: str) -> Dict[str, Any]
def latin_to_aksara_jawa(text: str) -> str
def aksara_jawa_to_latin(text: str) -> str
python
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 query_basabali(word: str) -> Dict[str, Any]
def latin_to_aksara_bali(text: str) -> str
def aksara_bali_to_latin(text: str) -> str
python
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: ᬩᬮᬶ ᭒᭐᭒᭖᭟