UNPKG

id-auto-formalizer

Version:

Konversi teks Bahasa Indonesia dari kasual ke formal untuk surat, email, dan laporan resmi

237 lines (170 loc) 5.39 kB
# 🇮🇩 Bahasa Indonesia Auto Formalizer [![npm version](https://img.shields.io/npm/v/id-auto-formalizer.svg)](https://www.npmjs.com/package/id-auto-formalizer) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com) Konversi teks Bahasa Indonesia dari gaya kasual/informal menjadi formal. Cocok untuk surat resmi, email profesional, dan laporan formal. --- ## ✨ Fitur - 🔄 200+ mapping kata informal formal - 🖥️ CLI support - 🔤 Auto kapitalisasi - ✏️ Auto tanda baca - 📊 Analisis tingkat formalitas - 💡 Saran peningkatan formalitas - 🚀 Batch processing file - 🎯 Ringan tanpa dependency berat --- ## 📦 Instalasi ### Sebagai CLI Tool (Global) ```bash npm install -g id-auto-formalizer ``` ### Sebagai Library (Dalam Project) ```bash npm install id-auto-formalizer ``` --- ## 🚀 Penggunaan ### CLI ```bash formalize text "gue mau nanya dong, lo udah selesai belom?" # → Saya ingin bertanya, Anda sudah selesai belum? formalize text "makasih ya udh bantuin" --analyze # → Terima kasih sudah membantu. # Skor Formalitas: 85% (Formal) formalize text "gw cape bgt" --suggest ``` #### Mode Interaktif ```bash formalize interactive # atau formalize i ``` #### File & Batch ```bash formalize file input.txt -o output.txt formalize batch -d ./documents -o ./formal_documents formalize batch -d ./emails -e .eml -o ./formal_emails ``` #### Tambah Mapping Baru ```bash formalize add-mapping "ngoding" "memprogram" formalize stats ``` --- ## 📚 Programmatic API ```js const { formalize } = require('id-auto-formalizer'); console.log(formalize("gue mau meeting sama lo besok pagi")); // Saya ingin meeting dengan Anda besok pagi. ``` #### Fitur Lanjutan ```js const IndonesianFormalizer = require('id-auto-formalizer'); const formalizer = new IndonesianFormalizer(); const result = formalizer.formalize("thanks ya udh bantu gue", { autoCapitalize: true, autoPunctuation: true }); const analysis = formalizer.analyzeFormalityLevel("lo tau gak?"); console.log(analysis); // { score: 25, level: 'Sangat Informal', informalWords: 2, totalWords: 3 } const suggestions = formalizer.suggestImprovements("gw capek"); ``` #### Tambah / Ekspor Mapping ```js formalizer.addMapping("ngoding", "memprogram"); formalizer.addMappings({ "ngegame": "bermain game", "ngetweet": "menulis tweet", "kepo": "ingin tahu" }); const allMappings = formalizer.exportMappings(); ``` --- ## 📝 Contoh Transformasi | Informal | Formal | |--------------------------------|------------------------------------| | gue mau nanya dong | Saya ingin bertanya | | thanks ya udh bantuin | Terima kasih sudah membantu | | sorry gue telat, jalanan macet | Maaf saya terlambat, jalanan macet| | btw lo udah makan belom? | Omong-omong, Anda sudah makan? | | meeting nya kapan? gue lupa | Meeting tersebut kapan? Saya lupa. | | tolong kirim filenya asap ya | Mohon kirim file tersebut segera. | --- ## 🗺️ Roadmap ### ✅ Fase 1: Fitur Dasar - [x] Mapping 200+ kata - [x] CLI interface - [x] Auto kapitalisasi & tanda baca - [x] Analisis formalitas - [x] Batch processing ### 🚧 Fase 2: NLP Lanjutan - [ ] Transformasi kontekstual - [ ] Perbaikan struktur kalimat - [ ] Deteksi akronim & singkatan ### 📋 Fase 3: Integrasi & UI - [ ] REST API - [ ] Web UI - [ ] Ekstensi VS Code & Chrome ### 🌐 Fase 4: Komunitas & Dataset - [ ] Dataset publik - [ ] Crowdsourcing mapping - [ ] Dukungan bahasa daerah --- ## 🤝 Kontribusi ### Menambah Mapping 1. Fork repo ini 2. Edit `src/formalizer.js` 3. Tambah ke `informalToFormal`: ```js this.informalToFormal = { // ... 'kata_gaul': 'kata_baku', }; ``` 4. Kirim pull request ### Kontribusi lainnya: - Laporkan bug - Usulkan fitur baru - Bantu dokumentasi --- ## 🔧 Development ```bash git clone https://github.com/codenamekii/id-auto-formalizer.git cd id-auto-formalizer npm install npm test npm run lint npm run dev ``` --- ## 📄 API Reference ### Class: `IndonesianFormalizer` #### `formalize(text, options)` - `text`: string - `options`: { autoCapitalize, autoPunctuation } #### `analyzeFormalityLevel(text)` `{ score, level, informalWords, totalWords }` #### `suggestImprovements(text)` array of suggestions #### `addMapping(informal, formal)` #### `addMappings({ informal: formal })` #### `exportMappings()` --- ## 📊 Dataset Sumber - Kamus Besar Bahasa Indonesia (KBBI) - Dataset publik Twitter Indonesia - Forum & platform chat lokal - Kontribusi komunitas --- ## 📜 Lisensi MIT lihat [LICENSE](LICENSE) --- ## 🔗 Link - [NPM](https://www.npmjs.com/package/id-auto-formalizer) - [GitHub](https://github.com/codenamekii/id-auto-formalizer) - [Issue Tracker](https://github.com/codenamekii/id-auto-formalizer/issues) - [Contribution Guide](CONTRIBUTING.md) --- _Membantu kamu menulis Bahasa Indonesia yang baik dan benar_ 🇮🇩