Deteksi bahasa di Chrome dengan AI bawaan

Dipublikasikan: 24 September 2024

Sebelum menerjemahkan teks dari satu bahasa ke bahasa lain, Anda harus menentukan bahasa yang digunakan dalam teks yang diberikan terlebih dahulu. Sebelumnya, terjemahan memerlukan upload teks ke layanan cloud, melakukan terjemahan di server, lalu mendownload hasilnya.

Language Detector API menggunakan inferensi di perangkat sehingga Anda dapat meningkatkan kualitas privasi. Meskipun Anda dapat mengirimkan library tertentu yang melakukan hal ini, Anda memerlukan resource tambahan untuk mendownloadnya.

Ketersediaan

Contoh kasus penggunaan

Language Detector API terutama berguna dalam skenario berikut:

  • Menentukan bahasa teks input agar dapat diterjemahkan.
  • Menentukan bahasa teks input, sehingga model yang benar dapat dimuat untuk tugas khusus bahasa, seperti deteksi toksisitas.
  • Tentukan bahasa teks input, sehingga dapat diberi label dengan benar, misalnya, di situs jejaring sosial online.
  • Tentukan bahasa teks input agar antarmuka aplikasi dapat disesuaikan dengan tepat. Misalnya, di situs Belgia untuk hanya menampilkan antarmuka yang relevan dengan pengguna yang berbicara bahasa Prancis.

Menggunakan Language Detector API

Language Detector API adalah bagian dari keluarga Translator API yang lebih besar. Pertama, jalankan deteksi fitur untuk melihat apakah browser mendukung Language Detector API.

if ('translation' in self && 'canDetect' in self.translation) {
  // The Language Detector API is available.
}  

Download model

Deteksi bahasa bergantung pada model yang disesuaikan untuk tugas spesifik dalam mendeteksi bahasa. Meskipun API dibuat di browser, model didownload on-demand saat pertama kali situs mencoba menggunakan API. Di Chrome, model ini sangat kecil jika dibandingkan dengan model lain. Bahkan, mungkin sudah ada mengingat model ini juga digunakan oleh fitur browser Chrome.

Untuk melihat apakah model siap digunakan, panggil fungsi translation.canDetect() asinkron. Ada tiga kemungkinan jawaban:

  • 'no': Browser saat ini mendukung Language Detector API, tetapi tidak dapat digunakan saat ini. Misalnya, karena tidak ada cukup ruang disk kosong yang tersedia untuk mendownload model.
  • 'readily': Browser saat ini mendukung Language Detector API, dan dapat langsung digunakan.
  • 'after-download': Browser saat ini mendukung Language Detector API, tetapi perlu mendownload model terlebih dahulu.

Untuk memicu download dan membuat instance pendeteksi bahasa, panggil fungsi translation.createDetector() asinkron. Jika respons untuk canDetect() adalah 'after-download', praktik terbaiknya adalah memproses progres download, sehingga Anda dapat memberi tahu pengguna jika download memerlukan waktu.

Contoh berikut menunjukkan cara melakukan inisialisasi pendeteksi bahasa.

const canDetect = await translation.canDetect();
let detector;
if (canDetect === 'no') {
  // The language detector isn't usable.
  return;
}
if (canDetect === 'readily') {
  // The language detector can immediately be used.
  detector = await translation.createDetector();
} else {
  // The language detector can be used after model download.
  detector = await translation.createDetector();
  detector.addEventListener('downloadprogress', (e) => {
 console.log(e.loaded, e.total);
  });
  await detector.ready;
}

Menjalankan detektor bahasa

Language Detector API menggunakan model peringkat untuk menentukan bahasa yang paling mungkin digunakan dalam teks tertentu. Peringkat adalah jenis machine learning, yang tujuannya adalah untuk mengurutkan daftar item. Dalam hal ini, Language Detector API memberi peringkat bahasa dari probabilitas tertinggi ke terendah.

Fungsi detect() dapat menampilkan hasil pertama, jawaban yang paling mungkin, atau melakukan iterasi pada kandidat yang diberi peringkat dengan tingkat keyakinan. Ini ditampilkan sebagai daftar objek {detectedLanguage, confidence}. Tingkat confidence dinyatakan sebagai nilai antara 0.0 (keyakinan terendah) dan 1.0 (keyakinan tertinggi).

const someUserText \= 'Hallo und herzlich willkommen\!';
const results \= await detector.detect(someUserText);
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely. In practice, one would pick the top
  // language(s) that cross a high enough threshold.
  console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...

Demo

Lihat pratinjau Language Detector API di demo kami. Masukkan teks yang ditulis dalam berbagai bahasa di textarea.

Upaya standardisasi

Language Detector API dipindahkan ke W3C Web Incubator Community Group setelah proposal yang sesuai menerima cukup dukungan. API ini adalah bagian dari proposal Translation API yang lebih besar.

Tim Chrome meminta masukan dari W3C Technical Architecture Group serta meminta posisi standar Mozilla dan WebKit.

Beri masukan

Jika Anda memiliki masukan tentang penerapan Chrome, laporkan bug Chromium. Bagikan masukan Anda tentang bentuk API Language Detector API dengan memberikan komentar pada Masalah yang ada atau membuka Masalah baru di repositori GitHub Translation API.