Deteksi bahasa dalam teks multibahasa
Mengapa deteksi bahasa otomatis itu berguna
Skenario nyata:
- Chatbot multibahasa: pengguna menulis "Hola, como estoy?" → mendeteksi bahasa Spanyol → membalas dalam bahasa Spanyol (bukan bahasa default)
- Content feed global: agregator berita perlu mengelompokkan artikel berdasarkan bahasa sebelum diterjemahkan
- Dukungan pelanggan: tiket dalam bahasa Jepang harus diarahkan ke tim Jepang, bukan tim lain
- Moderasi: aturan konten sensitif berbeda-beda per wilayah/bahasa
- Analytics: mengukur keberagaman bahasa dari audiens Anda
Model fastText language identification, open source dari Facebook, mendeteksi 176 bahasa dalam waktu kurang dari 10ms per teks.

Bagaimana model membedakan bahasa
fastText merepresentasikan setiap kata sebagai n-gram karakter (subwords). Kemudian menjumlahkan vektor-vektor tersebut dan mengklasifikasikan dengan regresi softmax. Mengapa ini berhasil:
- Bahasa Portugis memiliki ciri khas "ção", "nh", "lh"
- Bahasa Inggris memiliki ciri khas "th", "ing", "ed"
- Bahasa Jerman memiliki "sch", "ch", "äöü"
- Bahasa Mandarin yang ditulis dalam pinyin memiliki pola yang sangat berbeda dari hanzi
Model melihat tanda tangan statistik dari n-gram dan membuat keputusan. Teks pendek (<3 kata) bersifat ambigu; teks dengan 20+ kata memiliki akurasi > 99%.
Kasus sulit dan cara mengatasinya
- Code-switching: teks yang mencampur 2 bahasa ("Hello, tudo bem?") — model mengembalikan bahasa dominan + skor yang lebih rendah
- Bahasa yang mirip: Portugis vs Spanyol vs Katalan — fastText akurat 90%+ namun kasus borderline tetap ada
- Transliterasi: bahasa Mandarin ditulis dalam pinyin, bahasa Arab dalam huruf Latin — model mendeteksinya sebagai "bahasa Inggris" secara keliru
- Teks sangat pendek: "OK" bisa menjadi bahasa apa saja — selalu dikembalikan dengan skor rendah, gunakan threshold
- Kode pemrograman: teks source code terdeteksi sebagai "bahasa Inggris" — filter terlebih dahulu jika diperlukan
Threshold yang disarankan: hanya terima deteksi dengan confidence > 0.75. Di bawah itu, tandai sebagai "unknown" dan minta konfirmasi manusia.

Integrasi ke dalam stack Anda
Contoh Python umum:
`python
import httpx
r = httpx.post(
"https://api.brainiall.com/api/nlp/language",
json={"text": "Hola, ¿cómo estás hoy?"},
headers={"Authorization": "Bearer brnl-xxx"}
)
# {"language": "es", "confidence": 0.96, "top_3": [
# {"lang": "es", "conf": 0.96},
# {"lang": "pt", "conf": 0.02},
# {"lang": "ca", "conf": 0.01}
# ]}`
Gunakan top_3 saat ingin menampilkan alternatif untuk kasus kepercayaan rendah (contoh: "Sepertinya bahasa Spanyol, tapi bisa jadi Katalan — mohon konfirmasi").
Kasus penggunaan tingkat lanjut
- Pre-processing NLP: sebelum sentiment analysis, deteksi bahasa + routing ke model yang tepat
- Filtering: menghapus teks di luar bahasa target dalam dataset besar
- Traffic routing: menyeimbangkan beban antar cluster multibahasa
- Segmentasi: membagi dokumen panjang berdasarkan bahasa ketika tercampur
- Pencarian: memungkinkan pengguna mencari "tampilkan hanya konten dalam bahasa Indonesia dari platform ini"
Coba sekarang juga
Ketik "deteksi bahasa dari teks ini: [tempel]" di chat Brainiall. API tersedia di /api/nlp/language. Latensi tipikal < 10ms — cocok untuk penggunaan real-time. Paket Pro sudah mencakup penggunaan yang luas; paket Business menyertakan batch API.