Yerleşik yapay zeka ile dil algılama

Yayınlanma tarihi: 24 Eylül 2024, Son güncelleme: 10 Aralık 2024

Metni bir dilden başka bir dile çevirmeden önce, metinde hangi dilin kullanıldığını belirlemeniz gerekir. Önceden, çeviri için metnin bir bulut hizmetine yüklenmesi, çevirinin sunucuda yapılması ve ardından sonuçların indirilmesi gerekiyordu.

Dil Tanımlayıcı API'si, gizlilik hikayenizi iyileştirebilmeniz için cihaz üzerinde çıkarım kullanır. Bunu yapan belirli bir kitaplığı göndermek mümkün olsa da indirmek için ek kaynaklar gerekir.

Kullanılabilirlik

Kaynak denemesine kaydolma

Dil Tanımlayıcı API'sini kullanmaya başlamak için aşağıdaki adımları uygulayın:

  1. Google'ın Üretken Yapay Zeka Yasaklanan Kullanım Politikası'nı kabul edin.
  2. Language Detector API kaynak denemesi sayfasına gidin.
  3. Register'ı (Kaydol) tıklayın ve formu doldurun.
    • Web kaynağı alanına kaynağınızı veya uzantı kimliğinizi (chrome-extension://YOUR_EXTENSION_ID) girin.
  4. Göndermek için Kaydol'u tıklayın.
  5. Sağlanan jetonu kopyalayıp deneme sürümünün etkinleştirilmesini istediğiniz kaynaktaki veya uzantınızın dosyasındaki her web sayfasına ekleyin.
  6. Dil Algılama API'yi kullanmaya başlayın.

Kaynak denemelerini kullanmaya başlama hakkında daha fazla bilgi edinin.

localhost için destek ekleme

Kaynak denemesi sırasında localhost'te Language Detection API'ye erişmek için Chrome'u en son sürüme güncellemeniz gerekir. Ardından, aşağıdaki adımları uygulayın:

  1. Chrome'u şu platformlardan birinde açın: Windows, Mac veya Linux.
  2. Şuraya git: chrome://flags/#language-detection-api.
  3. Etkin'i seçin.
  4. Yeniden başlat'ı tıklayın veya Chrome'u yeniden başlatın.

Örnek kullanım alanları

Dil Tanımlayıcı API'si özellikle aşağıdaki senaryolarda yararlıdır:

  • Giriş metninin dilini belirleyerek metnin çevrilebilmesini sağlayın.
  • 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

Dil Tanımlayıcı API, Translator 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ılama işlemini çalıştırın.

if ('ai' in self && 'languageDetector' in self.ai)
  // 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 self.ai.languageDetector.capabilities() işlevini çağırın ve available alanını inceleyin. Üç 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ı örneklemek için asenkron self.ai.languageDetector.create() işlevini çağırın. capabilities() için yanıt 'after-download' ise indirme işleminin ilerleme durumunu dinlemeniz önerilir. Böylece, indirme işleminin uzun sürmesi durumunda kullanıcıyı bilgilendirebilirsiniz.

Belirli bir dilin algılanıp algılanamayacağını görmek için languageAvailable() işlevini çağırın.

const languageDetectorCapabilities = await self.ai.languageDetector.capabilities();
languageDetectorCapabilities.languageAvailable('es');
// 'readily'

Aşağıdaki örnekte, dil algılayıcının nasıl başlatılacağı gösterilmektedir.

const languageDetectorCapabilities = await self.ai.languageDetector.capabilities();
const canDetect = languageDetectorCapabilities.capabilities;
let detector;
if (canDetect === 'no') {
  // The language detector isn't usable.
  return;
}
if (canDetect === 'readily') {
  // The language detector can immediately be used.
  detector = await self.ai.languageDetector.create();
} else {
  // The language detector can be used after model download.
  detector = await self.ai.languageDetector.create({
    monitor(m) {
      m.addEventListener('downloadprogress', (e) => {
        console.log(`Downloaded ${e.loaded} of ${e.total} bytes.`);
      });
    },
  });
  await detector.ready;
}

Dil algılayıcıyı çalıştırma

Language Detector API, belirli bir metin parçasında büyük olasılıkla hangi dilin kullanıldığını 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 arasında 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. Metin alanına farklı dillerde yazılmış metin girin.

Standartlaştırma çalışması

İlgili teklif yeterli destek aldıktan sonra Language Detector API, W3C Web Incubator Topluluk Grubu'na 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 standartlarla ilgili görüşlerini sordu.

Görüşlerinizi paylaşın

Chrome'un uygulanmasıyla ilgili geri bildiriminiz varsa Chromium hata bildiriminde bulunun. Mevcut bir yoruma yorum yaparak veya Translation API GitHub deposunda yeni bir sorun açarak Language Detector API'nin API şekliyle ilgili geri bildiriminizi paylaşın.