Web için dil algılama kılavuzu

MediaPipe Dil Dedektörü görevi, bir metin parçasının dilini tanımlamanızı sağlar. Bu talimatlarda, web ve JavaScript uygulamaları için Dil Detektörü'nün nasıl kullanılacağı gösterilmektedir. Bu talimatlarda açıklanan kod örneğine GitHub'dan ulaşabilirsiniz.

Demoyu izleyerek bu görevi çalışırken görebilirsiniz. Bu görevin özellikleri, modelleri ve yapılandırma seçenekleri hakkında daha fazla bilgi için Genel Bakış'a bakın.

Kod örneği

Dil Dedektörü için örnek kod, size referans olması açısından bu görevin JavaScript'te eksiksiz bir şekilde uygulanmasını sağlar. Bu kod, bu görevi test etmenize ve kendi dil algılayıcı özelliğinizi oluşturmaya başlamanıza yardımcı olur. Dil Dedektörü örnek kodunu yalnızca web tarayıcınızı kullanarak görüntüleyebilir, çalıştırabilir ve düzenleyebilirsiniz.

Kurulum

Bu bölümde geliştirme ortamınızı kurmanın temel adımları açıklanmaktadır. Projelerinizi özel olarak Dil Detektörü'nü kullanacak şekilde kodlayın. Platform sürümü gereksinimleri de dahil olmak üzere, geliştirme ortamınızı MediaPipe görevlerini kullanmak amacıyla ayarlama hakkında genel bilgiler için Web için kurulum kılavuzuna bakın.

JavaScript paketleri

Dil Algılayıcı kodu, @mediapipe/tasks-text paketi üzerinden kullanılabilir. Bu kitaplıkları, platform Kurulum kılavuzunda sağlanan bağlantılardan bulup indirebilirsiniz.

Aşağıdaki komutu kullanarak gerekli paketleri yerel hazırlık için aşağıdaki kodla yükleyebilirsiniz:

npm install @mediapipe/tasks-text

Bir sunucuya dağıtım yapmak istiyorsanız kodu doğrudan HTML sayfanıza eklemek için jsDelivr gibi bir içerik yayınlama ağı (CDN) hizmetini kullanabilirsiniz. Bunun için aşağıdaki adımları izleyin:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

Model

MediaPipe Dil Dedektörü görevi, bu görevle uyumlu, eğitilmiş bir model gerektirir. Dil Algılayıcı için eğitilmiş modeller hakkında daha fazla bilgi almak isterseniz göreve genel bakış Modeller bölümüne bakın.

Bir model seçip indirin ve ardından proje dizininizde depolayın:

<dev-project-root>/app/shared/models

Modelin yolunu, aşağıda gösterildiği gibi baseOptions nesnesi modelAssetPath parametresiyle belirtin:

baseOptions: {
        modelAssetPath: `/app/shared/models/language_detector.tflite`
      }

Görevi oluşturma

Çıkarım çalıştırma görevi hazırlamak için Dil Algılayıcı LanguageDetector.createFrom...() işlevlerinden birini kullanın. createFromModelPath() işlevini, eğitilen model dosyasına giden göreli veya mutlak bir yolla kullanabilirsiniz. Aşağıdaki kod örneğinde, createFromOptions() işlevinin kullanımı gösterilmektedir. Görevleri yapılandırma hakkında daha fazla bilgi edinmek için Yapılandırma seçenekleri bölümüne bakın.

Aşağıdaki kod bu görevin nasıl oluşturulacağını ve yapılandırılacağını gösterir.

async function createDetector() {
  const textFiles = await FilesetResolver.forTextTasks(
      "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  languageDetector = await languageDetector.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-models/language_detector/language_detector/float32/1/language_detector.tflite`
      },
    }
  );
}
createDetector();

Yapılandırma seçenekleri

Bu görev, Web ve JavaScript uygulamaları için aşağıdaki yapılandırma seçeneklerine sahiptir:

Seçenek Adı Açıklama Değer Aralığı Varsayılan Değer
maxResults İsteğe bağlı olarak, döndürülecek en yüksek puanlı dil tahmininin maksimum sayısını ayarlar. Bu değer sıfırdan küçükse mevcut tüm sonuçlar döndürülür. Pozitif sayılar -1
scoreThreshold Model meta verilerinde belirtilen eşiği (varsa) geçersiz kılan tahmin puanı eşiğini ayarlar. Bu değerin altındaki sonuçlar reddedilir. Tüm kayan Belirlenmedi
categoryAllowlist İzin verilen dil kodlarının isteğe bağlı listesini ayarlar. Boş değilse, dil kodu bu grupta yer almayan dil tahminleri filtrelenir. Bu seçenek categoryDenylist ile birlikte kullanılamaz ve her iki sonucun da kullanılması hataya neden olur. Herhangi bir dize Belirlenmedi
categoryDenylist İzin verilmeyen dil kodlarının isteğe bağlı listesini ayarlar. Boş değilse dil kodu bu kümede yer alan dil tahminleri filtrelenir. Bu seçenek, categoryAllowlist ile birlikte kullanılamaz ve her iki sonucun da kullanılması hataya neden olur. Herhangi bir dize Belirlenmedi

Verileri hazırlama

Dil Algılayıcı, metin (string) verileriyle çalışır. Görev, tokenizasyon ve tensör ön işlemesi dahil olmak üzere veri girişi ön işlemesini yürütür. Tüm ön işlemeler, detect işlevi içinde gerçekleştirilir. Giriş metninin önceden işlenmesine gerek yoktur.

const inputText = "The input text for the detector.";

Görevi çalıştırma

Dil Algılayıcı, çıkarımları tetiklemek için detect işlevini kullanır. Dil algılama için bu, giriş metni için olası dilleri döndürmek anlamına gelir.

Aşağıdaki kod, işlemenin görev modeliyle nasıl yürütüleceğini gösterir:

// Wait to run the function until inner text is set
const detectionResult = languageDetector.detect(inputText);

Sonuçları işleme ve görüntüleme

Dil Algılayıcı görevi, dil tahminlerinin ve bu tahminlerin olasılıklarının listesini içeren bir LanguageDetectorResult oluşturur. Aşağıda, bu görevden alınan çıkış verilerinin bir örneği gösterilmektedir:

LanguageDetectorResult:
  LanguagePrediction #0:
    language_code: "fr"
    probability: 0.999781

Bu sonuç, model şu giriş metninde çalıştırılarak elde edildi: "Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent.".

Bu görevin sonuçlarını işlemek ve görselleştirmek için gereken kodun bir örneği için Web örnek uygulamasına bakın.