Skip to main content

Penerjemah Bahasa Isyarat Indonesia (BISINDO) ke Bahasa Indonesia menggunakan N-gram dan Neural LM

Project description

BisindoTrans

Hybrid Sign Language Translation System for Indonesian

Python License Status NLP


Tentang Proyek

BisindoTrans adalah sistem penerjemahan bahasa isyarat Indonesia (BISINDO) ke teks Bahasa Indonesia natural yang dikembangkan sebagai bagian dari penelitian Skripsi S1 Teknik Informatika.

Proyek ini mengeksplorasi pendekatan Hybrid yang menggabungkan:

  • Statistical Language Model (N-gram Bigram) untuk efisiensi dan presisi
  • Neural Language Model (GPT-2 Indonesian) untuk fleksibilitas generasi

Sistem ini juga membandingkan dua strategi decoding:

  • Beam Search — deterministik, konsisten
  • Nucleus Sampling — stokastik, variatif

Evaluasi dilakukan menggunakan metrik standar NLP:

  • BLEU Score — n-gram precision
  • chrF Score — character-level F-score

Instalasi

# Clone repository
git clone https://github.com/username/bisindo-trans.git
cd bisindo-trans

# Install package (development mode)
pip install -e .

# Dengan dukungan Neural LM (GPT-2)
pip install -e ".[neural]"

Requirements:

  • Python 3.9+
  • pandas, nltk, openpyxl
  • torch, transformers (opsional, untuk mode neural)

Quick Start

from bisindotrans import Translator

# Inisialisasi dengan N-gram model
translator = Translator(model_type="ngram")

# Terjemahkan glosa ke bahasa natural
hasil = translator.translate("SAYA MAKAN NASI", method="beam")
print(hasil)  # Output: "Saya makan nasi."

# Dengan nama (ejaan jari)
hasil = translator.translate("NAMA SAYA M U H A M M A D A L D I", method="beam")
print(hasil)  # Output: "Nama saya Muhammad Aldi."

# Perbandingan metode
beam_result = translator.translate("SELAMAT PAGI", method="beam")
nucleus_result = translator.translate("SELAMAT PAGI", method="nucleus")

Fitur Unggulan

Fitur Deskripsi
Hybrid Model Pilih antara Statistical N-gram atau Neural GPT-2 sesuai kebutuhan
Dual Decoding Beam Search (presisi tinggi) dan Nucleus Sampling (variasi output)
Smart NER Deteksi otomatis nama orang dari ejaan jari (fingerspelling)
Auto-Capitalization Kapitalisasi otomatis untuk nama dan awal kalimat
Model Persistence Simpan/muat model untuk loading instan (~10 detik vs ~5 menit training)
Anti-Hallucination Filter bawaan untuk mencegah output yang tidak relevan pada Neural LM
Preprocessing Pipeline Normalisasi glosa, penggabungan ejaan jari, koreksi frasa
Batch Translation Terjemahkan banyak kalimat sekaligus

Benchmark

Perbandingan Model

Model Decoding BLEU chrF Latency
N-gram Beam Search
N-gram Nucleus
Neural Beam Search
Neural Nucleus

Konfigurasi Pengujian

Parameter N-gram Neural
Corpus Size ~19 juta kata Pre-trained
Vocab Size ~1.4 juta 50,257
Beam Width 3 5
Top-p (Nucleus) 0.5 0.7

Struktur Package

bisindotrans/
├── __init__.py              # Public API
├── translator.py            # Main Translator class
├── preprocessing/
│   ├── normalisasi.py       # Cleaning & deduplication
│   └── naturalisasi.py      # NER & phrase mapping
├── models/
│   ├── ngram.py             # Statistical bigram model
│   └── neural.py            # GPT-2 wrapper
├── decoding/
│   └── strategies.py        # Beam Search & Nucleus Sampling
└── utils/
    └── postprocessing.py    # Output formatting

Penggunaan Lanjutan

Ganti Model

# Mode N-gram (cepat, offline)
t = Translator(model_type="ngram")

# Mode Neural (butuh GPU/CPU kuat)
t = Translator(model_type="neural")

Custom Model Path

# Load model dari lokasi custom
t = Translator(model_type="ngram", model_path="path/to/custom_model.pkl")

Batch Processing

glosses = ["SELAMAT PAGI", "TERIMA KASIH", "SAMPAI JUMPA"]
results = translator.translate_batch(glosses, method="beam")

Referensi

  • Holtzman, A., et al. (2019). The Curious Case of Neural Text Degeneration
  • Radford, A., et al. (2019). Language Models are Unsupervised Multitask Learners
  • Papineni, K., et al. (2002). BLEU: a Method for Automatic Evaluation of Machine Translation

Author

Muhammad Aldi Alfatih
aldialfatih016@gmail.com7 Skripsi S1 Ilmu Komputer 2026


License

MIT License - Silakan gunakan untuk keperluan akademis dan pengembangan.

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

bisindo_trans-1.1.1.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

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

bisindo_trans-1.1.1-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file bisindo_trans-1.1.1.tar.gz.

File metadata

  • Download URL: bisindo_trans-1.1.1.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for bisindo_trans-1.1.1.tar.gz
Algorithm Hash digest
SHA256 df78943eb60a749c8a7c18815b3567ac54636fd73c0b53af48b22d77ad4fe776
MD5 1dc0652f7f5b64e334513d095686464e
BLAKE2b-256 cfc1bb394906d3172b4858ef5e468bc54b4a7ae71f4b700e680ac44f971e02c7

See more details on using hashes here.

File details

Details for the file bisindo_trans-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: bisindo_trans-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for bisindo_trans-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 963f70bba4710679a448db49bf854f5836cb7ba5c14de62509c18874f89ae2c6
MD5 f716fa63001bccded35c6b89adabe6ce
BLAKE2b-256 277b87bd33dedb6450f5cf8e1a6c7fdd153d339313271790eb724b1ece523969

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