Yayınlanma tarihi: 24 Eylül 2024
Metinleri bir dilden diğerine çevirmeden önce, bu metinde hangi dilin kullanıldığını belirlemeniz gerekir. Önceden bu işlem metnin bir bulut hizmetine yüklenmesini gerektiriyordu. Cihaz üzerinde çıkarım yaparak gizlilik hikayenizi iyileştirebilirsiniz. Bunu yapan belirli bir kitaplığı göndermek mümkün olsa da indirmek için ek kaynaklar gerekir.
Dil Tanımlayıcı ve Çevirmen API önerisi, tarayıcıya yerleşik bir API ile bir modeli bu görev için hassaslaştırarak bu sorunu çözmeyi amaçlamaktadır.
Örnek kullanım alanları
Dil Tanımlayıcı API'si özellikle aşağıdaki senaryolarda yararlıdır:
- Giriş metninin çevrilebilmesi için dilini belirleyin.
- Giriş metninin dilini belirler. Böylece, toksiklik algılama gibi dile özgü görevler için doğru model yüklenebilir.
- Giriş metninin dilini belirleyerek metnin doğru şekilde etiketlenmesini sağlayabilirsiniz (ör. online sosyal ağ sitelerinde).
- Giriş metninin dilini belirleyerek uygulamanın arayüzünü buna göre ayarlayabilirsiniz. Örneğin, Belçika'daki bir sitede yalnızca Fransızca konuşan kullanıcılarla alakalı arayüzü göstermek için
Language Detector API'yi kullanma
Language Detector API, Çevirmen API'nin daha büyük ailesinin bir parçasıdır. Öncelikle, tarayıcının LanguageDetector API'yi destekleyip desteklemediğini görmek için özellik algılamayı çalıştırın.
if ('translation' in self && 'canDetect' in self.translation) {
// The Language Detector API is available.
}
Model indirme
Dil algılama, dil algılamayla ilgili özel görev için hassas ayarlanmış bir modele bağlıdır. API tarayıcıya yerleştirilmiş olsa da model, bir site API'yi ilk kez kullanmaya çalıştığında isteğe bağlı olarak indirilir. Chrome'da bu model, diğer modellere kıyasla çok küçüktür. Bu model, Chrome Tarayıcı özellikleri tarafından da kullanıldığı için zaten mevcut olabilir.
Modelin kullanıma hazır olup olmadığını görmek için asenkron translation.canDetect()
işlevini çağırın. Üç olası yanıt vardır:
'no'
: Mevcut tarayıcı, Dil Tanımlayıcı API'yi destekler ancak şu anda kullanılamaz. Örneğin, modeli indirmek için yeterli boş disk alanı olmadığından.'readily'
: Mevcut tarayıcı, Language Detector API'yi destekler ve hemen kullanılabilir.'after-download'
: Mevcut tarayıcı, Language Detector API'yi destekler ancak önce modeli indirmesi gerekir.
İndirme işlemini tetiklemek ve dil algılayıcıyı örneklendirmek için eşzamansız translation.createDetector()
işlevini çağırın. canDetect()
için verilen yanıt 'after-download'
ise en iyi uygulama indirme işleminin ilerleme durumunu dinlemektir. Bu sayede indirme işleminin zaman alması ihtimaline karşı kullanıcıyı bilgilendirebilirsiniz.
Aşağıdaki örnekte, dil algılayıcının nasıl başlatılacağı gösterilmektedir.
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;
}
Dil algılayıcıyı çalıştırma
Language Detector API, belirli bir metinde hangi dilin kullanılma olasılığının en yüksek olduğunu belirlemek için bir sıralama modeli kullanır. Sıralama, amacın bir öğe listesini sıralamak olduğu bir makine öğrenimi türüdür. Bu durumda Dil Algılayıcı API'si, dilleri olasılık düzeyine göre en yüksekten en düşüğe doğru sıralar.
detect()
işlevi, ilk sonucu (en olası yanıtı) döndürebilir veya güven düzeyine göre sıralanmış adaylar üzerinde iterasyon yapabilir.
Bu, {detectedLanguage, confidence}
nesnesi listesi olarak döndürülür. confidence
seviyesi, 0.0
(en düşük güven) ile 1.0
(en yüksek güven) arasında bir değer olarak ifade edilir.
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
Language Detector API'yi demomuzda önizleyebilirsiniz. Farklı dillerde yazılmış metinleri metin alanına girin.
Kaynak denemesine kaydolma
Bu API'yi kullanıcılarınızla test etmeye başlamak için Language Detector API deneme sürümüne kaydolun. Bu kaynak denemesi, Chrome 130 ile 135 arasında çalışır.
Kaynak denemelerinin işleyiş şekli hakkında daha fazla bilgi edinin.
Standartlaştırma çalışması
Language Detector API, ilgili teklif yeterli destek aldıktan sonra W3C Web Incubator Community Group'a taşındı. API, daha büyük bir Translation API teklifinin bir parçasıdır. Chrome ekibi, W3C Teknik Mimari Grubu'ndan geri bildirim istedi ve Mozilla ile WebKit'ten söz konusu tarayıcı tedarikçisinin standartlarla ilgili görüşlerini sordu.
Görüşlerinizi paylaşın
Chrome'un uygulanmasıyla ilgili geri bildiriminiz varsa Chromium hata bildiriminde bulunun. Language Detector API'nin API şekliyle ilgili geri bildirimlerinizi Translation API GitHub deposunda mevcut bir soruna yorum yaparak veya yeni bir Sorun açarak paylaşabilirsiniz.