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.