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, hal ini mengharuskan teks diupload ke layanan cloud. Dengan inferensi di perangkat, Anda dapat meningkatkan kualitas privasi Anda. Meskipun Anda dapat mengirimkan library tertentu yang melakukan hal ini, Anda memerlukan resource tambahan untuk mendownloadnya.

Proposal Language Detector dan Translator API bertujuan untuk mengatasi tantangan ini dengan menyesuaikan model untuk tugas ini, dengan API yang terintegrasi ke browser.

Contoh kasus penggunaan

Language Detector API terutama berguna dalam skenario berikut:

  • Tentukan bahasa teks input, sehingga 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, sehingga antarmuka aplikasi dapat disesuaikan sesuai kebutuhan. 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 tertentu 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 respons:

  • 'no': Browser saat ini mendukung Language Detector API, tetapi tidak dapat digunakan saat ini. Misalnya, karena kapasitas disk kosong yang tersedia tidak cukup 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. Pemberian peringkat adalah jenis pembelajaran mesin, yang tujuannya adalah 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 dalam demo kami. Masukkan teks yang ditulis dalam berbagai bahasa di area teks.

Mendaftar untuk uji coba origin

Daftar ke uji coba Language Detector API untuk mulai menguji API ini dengan pengguna Anda. Uji coba origin ini berjalan dari Chrome 130 hingga 135.

Pelajari lebih lanjut cara kerja uji coba origin.

Upaya standardisasi

Language Detector API dipindahkan ke Grup Komunitas Inkubator Web W3C setelah proposal terkait menerima dukungan yang cukup. API ini adalah bagian dari proposal Translation API yang lebih besar. Tim Chrome meminta masukan dari W3C Technical Architecture Group serta meminta Mozilla dan WebKit untuk posisi standar vendor browser tertentu.

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.

Resource