Skip to main content

Saujana 🇮🇩

Python Version PyPI Website License: MIT

Saujana adalah standalone framework Natural Language Processing (NLP) dan Word Embedding native Bahasa Indonesia.


✨ Fitur Utama

  • 🚀 Native Engine: Pelatihan Word2Vec dan FastText kustom tanpa dependensi eksternal berat.
  • 🧠 Semantic API: Pencarian kemiripan (similarity), analogi kata, dan deteksi OOV (Out-of-Vocabulary).
  • 🔗 Multilingual Alignment: Penyelarasan ruang vektor bahasa daerah (Sunda, Jawa, Bali) ke Bahasa Indonesia menggunakan algoritma Procrustes.
  • 🛠️ Corpus Builder: Alat untuk membangun dataset pelatihan dari ribuan file teks lokal secara otomatis.
  • 🧩 Saka-NLP Ready: Terintegrasi penuh dengan ekosistem Saka-NLP untuk morfologi dan normalisasi Nusantara.

📦 Instalasi

pip install saujana-nlp

🚀 Penggunaan Cepat

1. Memuat Model Vektor

Saujana menyediakan model pre-trained yang siap digunakan untuk ekstraksi fitur semantik.

import saujana

# Memuat model Bahasa Indonesia sedang (~200k kata)
nlp = saujana.load("id_saujana_md")

doc = nlp("Presiden bertolak menuju Jakarta untuk pertemuan tingkat tinggi.")

for token in doc:
    print(f"{token.text:12} | POS: {token.pos_:6} | Lemma: {token.lemma_}")

2. Analisis Kemiripan (Similarity)

Bandingkan dokumen atau kata berdasarkan konteks semantiknya.

doc1 = nlp("Jokowi mengunjungi ibu kota.")
doc2 = nlp("Presiden pergi ke Jakarta.")

print(f"Skor Kemiripan: {doc1.similarity(doc2):.4f}")

🛠️ Fitur Lanjut

1. Pelatihan Model Word Embedding Native

Anda dapat melatih model Anda sendiri secara native dengan format .npz yang memuat kilat.

from saujana.vectors.loader import train_word2vec

sentences = [["saya", "suka", "nlp"], ["saujana", "sangat", "cepat"]]
vocab = train_word2vec(sentences, vector_size=100, epochs=10)

# Cari kata terdekat
print(vocab.most_similar("nlp"))

2. Pembangun Korpus (Corpus Builder)

Gunakan ribuan data mentah Anda menjadi korpus siap latih.

from saujana.vectors.training import CorpusBuilder

builder = CorpusBuilder()
builder.add_directory("./data/artikel_berita")
builder.add_file("./data/kamus_tambahan.txt")

# Memproses dan menggabung menjadi satu file korpus bersih
corpus_file = builder.build("data_latih.txt", lang="id")

3. Penyelarasan Bahasa Daerah (Alignment)

Selaraskan model bahasa daerah agar berada dalam ruang vektor yang sama dengan Bahasa Indonesia.

from saujana.vectors.training import FastTextTrainer

trainer = FastTextTrainer()
# Definisi kata jangkar (anchor words)
anchors = [("makan", "tuang"), ("pergi", "angkat"), ("tidur", "kulem")]

# Putar model Sunda agar selaras dengan Indonesia
aligned_model = trainer.align_models(sunda_model, indo_model, anchors)

🤝 Ekosistem Saka-NLP

Saujana bertindak sebagai lapisan semantik (Word Embeddings) yang melengkapi lapisan linguistik (Morfologi/Normalisasi) dari Saka-NLP.

[!TIP] Untuk dokumentasi lengkap mengenai Normalisasi Slang, Stemming Nusantara, Analisis Morfologi Sunda/Jawa/Bali, dan penggunaan modul Saka-NLP lainnya, silakan kunjungi:

👉 https://saka-nlp.netlify.app/


📊 API Reference Singkat

Objek Properti Utama Deskripsi
Token text, pos_, lemma_, is_stop, vector Unit kata tunggal dalam dokumen.
Doc ents, sents, vector, similarity() Kontainer teks hasil pemrosesan pipeline.
Vocab most_similar(), analogy(), get_vector() Pusat data representasi vektor kata.
Span text, label_, vector Potongan dari dokumen (misal: Frasa/Entitas).

📜 Lisensi

Saujana didistribusikan di bawah lisensi MIT. Bebas digunakan untuk keperluan riset maupun komersial.


Website: saujana-nlp.netlify.app
Creator: Muhammad Ikhwan Fathulloh

Dikembangkan dengan ❤️ untuk memperkuat kedaulatan data bahasa Nusantara.

Download files

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

Source Distribution

saujana_nlp-0.1.1.tar.gz (35.7 kB view details)

Uploaded Source

Built Distribution

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

saujana_nlp-0.1.1-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

Details for the file saujana_nlp-0.1.1.tar.gz.

File metadata

  • Download URL: saujana_nlp-0.1.1.tar.gz
  • Upload date:
  • Size: 35.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for saujana_nlp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 13d903762500a736a43e6869ef63291115694ea478624a52997426428dfae540
MD5 5568b7b71061bc343d0bc8749bb7cdff
BLAKE2b-256 7996041cadb4b34b676751fead65e45d1987b4273317504da36d3ec17b30761b

See more details on using hashes here.

File details

Details for the file saujana_nlp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: saujana_nlp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 37.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for saujana_nlp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b580503eb73ac2dfac99dda2e002d3380063894c772b28fb9a6e07eab8552a63
MD5 23160f79fe8f8f28cef7e1fb4c6bc7fd
BLAKE2b-256 34329bc001adb50565e424b68e13dbd2e4bfd31400b914429d58e6eedaa76a17

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

Supported by

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