Web için dil algılama kılavuzu

MediaPipe Language Detector görevi, bir metin parçasının dilini belirlemenizi sağlar. Bu talimatlarda, web ve JavaScript uygulamaları için Language Detector'ı nasıl kullanacağınız gösterilmektedir. Bu talimatlarda açıklanan kod örneği GitHub'da mevcuttur.

Bu görevin nasıl çalıştığını görmek için demoyu inceleyebilirsiniz. Bu görevin özellikleri, modelleri ve yapılandırma seçenekleri hakkında daha fazla bilgi için Genel Bakış bölümüne bakın.

Kod örneği

Language Detector'ın örnek kodu, bu görevin JavaScript'te eksiksiz bir uygulamasını referansınız için sağlar. Bu kod, bu görevi test etmenize ve kendi dil algılama özelliğinizi oluşturmaya başlamanıza yardımcı olur. Örneği 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ı ve kod projelerinizi özellikle Language Detector'ı kullanacak şekilde ayarlamayla ilgili temel adımlar açıklanmaktadır. Platform sürümü gereksinimleri de dahil olmak üzere MediaPipe görevlerini kullanmak için geliştirme ortamınızı ayarlama hakkında genel bilgi edinmek istiyorsanız Web için kurulum kılavuzu başlıklı makaleyi inceleyin.

JavaScript paketleri

Language Detector kodu, @mediapipe/tasks-text paketi üzerinden kullanılabilir. Bu kitaplıkları, platform kurulum kılavuzunda verilen bağlantılardan bulup indirebilirsiniz.

Aşağıdaki komutu kullanarak yerel hazırlama için gerekli paketleri 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) hizmeti kullanabilirsiniz.

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

Model

MediaPipe Language Detector görevi için bu görevle uyumlu, eğitilmiş bir model gerekir. Dil Algılayıcı için kullanılabilen eğitilmiş modeller hakkında daha fazla bilgi edinmek istiyorsanız görev genel bakışının Modeller bölümüne bakın.

Bir model seçip indirin ve proje dizininizde saklayı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

Görevi çıkarım çalıştırmaya hazırlamak için Language Detector LanguageDetector.createFrom...() işlevlerinden birini kullanın. Eğitilmiş model dosyasına göreli veya mutlak bir yolla erişmek için createFromModelPath() işlevini kullanabilirsiniz. Aşağıdaki kod örneğinde createFromOptions() işlevinin kullanımı gösterilmektedir. Görevleri yapılandırma hakkında daha fazla bilgi için Yapılandırma seçenekleri başlıklı makaleyi inceleyin.

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

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 En yüksek puanlı dil tahminlerinden döndürülecek isteğe bağlı maksimum sayıyı 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 (varsa) sağlanan tahmini puan eşiğini geçersiz kılan eşiği ayarlar. Bu değerin altındaki sonuçlar reddedilir. Herhangi bir kayan öğe Ayarlanmadı
categoryAllowlist İzin verilen dil kodlarının isteğe bağlı listesini ayarlar. Boş değilse dil kodu bu kümede olmayan dil tahminleri filtrelenir. Bu seçenek, categoryDenylist ile birlikte kullanılamaz. İkisinin birlikte kullanılması hataya neden olur. Tüm dizeler Ayarlanmadı
categoryDenylist İzin verilmeyen isteğe bağlı dil kodu listesini ayarlar. Boş değilse dil kodu bu kümede olan dil tahminleri filtrelenir. Bu seçenek categoryAllowlist ile birlikte kullanılamaz ve ikisinin birlikte kullanılması hataya neden olur. Tüm dizeler Ayarlanmadı

Verileri hazırlama

Dil Algılayıcı, metin (string) verileriyle çalışır. Görev, belirtekleştirme ve tensör ön işleme dahil olmak üzere veri girişi ön işlemesini gerçekleştirir. Tüm ön işleme işlemleri detect işlevi içinde gerçekleştirilir. Giriş metninin önceden ek olarak ön 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ş metninin olası dillerini döndürme anlamına gelir.

Aşağıdaki kodda, görevi kullanarak işlemenin nasıl yürütüleceği gösterilmektedir:

// 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 listesini ve bu tahminlerin olasılıklarını içeren bir LanguageDetectorResult çıktısı verir. Aşağıda, bu görevden elde edilen çıkış verilerine ilişkin bir örnek gösterilmektedir:

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

Bu sonuç, modelin giriş metni üzerinde çalıştırılmasıyla 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 örneğini örnekte bulabilirsiniz.