Web için metin sınıflandırma kılavuzu

MediaPipe Metin Sınıflandırıcı görevi, metinleri tanımlanmış bir dizi kategoride sınıflandırmanızı sağlar. örnek olarak verilebilir. Kategoriler, modeli, ve modelin nasıl eğitildiğini anlamanıza yardımcı olur. Bu talimatlar, web ve JavaScript uygulamaları için Metin Sınıflandırıcı.

Bu görevi, demo. Modeller ve özellikler, yapılandırma seçeneklerini görmek için Genel Bakış'ı inceleyin.

Kod örneği

Metin Sınıflandırıcı için örnek kod, bu görevi aşağıda bulabilirsiniz. Bu kod, görevi test etmenize Kendi metin sınıflandırma uygulamanızı geliştirmeye başlayın. Bu dosyaları görüntüleyebilir, çalıştırabilir Metin Sınıflandırıcı örnek kodunu düzenleme yalnızca web tarayıcınızı kullanarak.

Kurulum

Bu bölümde, geliştirme ortamınızı ve ayarlarınızı yönetmeyle ilgili Metin Sınıflandırıcı'yı kullanmak için özel olarak kod projeleri. Şu konularda genel bilgi için: MediaPipe Tasks'ı kullanmak için geliştirme ortamınızı ayarlayarak daha fazla bilgi için Web için kurulum kılavuzu.

JavaScript paketleri

Metin Sınıflandırıcı kodu, @mediapipe/tasks-text paketinden yararlanın. Bu kitaplıkları, şurada sağlanan bağlantılardan bulup indirebilirsiniz: platform Kurulum kılavuzu.

Yerel hazırlık için gerekli paketleri aşağıdaki kodla yükleyebilirsiniz kullanabilirsiniz:

npm install @mediapipe/tasks-text

Sunucuya dağıtım yapmak istiyorsanız içerik yayınlama yöntemini kullanabilirsiniz. ağ (CDN) hizmeti kullanarak jsDelivr aşağıdaki gibi kodu doğrudan HTML sayfanıza ekleyin:

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

Model

MediaPipe Metin Sınıflandırıcı görevi bu görevi görebilir. Metin Sınıflandırıcı için eğitilen modeller hakkında daha fazla bilgi almak üzere bkz. göreve genel bakış Modeller bölümü.

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

<dev-project-root>/assets/bert_text_classifier.tflite

baseOptions nesnesi modelAssetPath ile modelin yolunu belirtin parametresini kullanın:

baseOptions: {
        modelAssetPath: `/assets/bert_text_classifier.tflite`
      }

Görevi oluşturma

Şu işlemler için Metin Sınıflandırıcı TextClassifier.createFrom...() işlevlerinden birini kullanın: çıkarımları yapmaya hazır hale getirebilirsiniz. createFromModelPath() kullanabilirsiniz işlevi, eğitilen model dosyasına giden göreli veya mutlak bir yolla Kod aşağıdaki örnekte TextClassifier.createFromOptions() işlevini kullanın. Kullanılabilir yapılandırma seçenekleri hakkında daha fazla bilgi edinmek için Yapılandırma seçenekleri.

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

async function createClassifier() {
  const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  textClassifier = await TextClassifier.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_classifier/bert_text_classifier.tflite`
      },
      maxResults: 5
    }
  );
}
createClassifier();

Yapılandırma seçenekleri

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

Seçenek Adı Açıklama Değer Aralığı Varsayılan Değer
displayNamesLocale görev modelinin meta verileri (varsa). Şunun için varsayılan: en İngilizce. Özel bir modelin meta verilerine yerelleştirilmiş etiketler ekleyebilirsiniz TensorFlow Lite Metadata Writer API'yi kullanarak Yerel ayar kodu en
maxResults İsteğe bağlı maksimum puanlı sınıflandırma sonucu sayısını şu değere ayarlar: dön. < 0 ise tüm mevcut sonuçlar döndürülür. Pozitif sayılar -1
scoreThreshold Şu kriterde sağlanan tahmini geçersiz kılan bir tahmin puanı eşiğini belirler: model meta verileri (varsa). Bu değerin altındaki sonuçlar reddedilir. Herhangi bir kayan nokta Ayarlanmadı
categoryAllowlist İzin verilen kategori adlarının isteğe bağlı listesini ayarlar. Boş değilse kategori adı bu kümede bulunmayan sınıflandırma sonuçları filtrelendi. Yinelenen veya bilinmeyen kategori adları yoksayılır. Bu seçenek categoryDenylist ile birlikte kullanılamaz ve her ikisi de hataya neden olur. Tüm dizeler Ayarlanmadı
categoryDenylist İzin verilmeyen kategori adlarının isteğe bağlı listesini ayarlar. Eğer Boş olmayan, kategori adı bu kümede bulunan sınıflandırma sonuçları filtrelenir çıkar. Yinelenen veya bilinmeyen kategori adları yoksayılır. Bu seçenek birlikte hariç tutmanın yanı sıra her iki sonucun da hatalı olarak kullanılmasıdır.categoryAllowlist Tüm dizeler Ayarlanmadı

Verileri hazırlama

Metin Sınıflandırıcı, metin (String) verileriyle çalışır. Görev, projenin yürütülmesi sırasında ve tensör ön işlemesi dahil olmak üzere veri girişi ön işlemesi.

Tüm ön işlemler, classify() işlevi içinde gerçekleştirilir. Gerek yok ek ön işleme yöntemini kullanabilirsiniz.

const inputText = "The input text to be classified.";

Görevi çalıştırma

Metin Sınıflandırıcı, çıkarımları tetiklemek için classify() işlevini kullanır. Metin için sınıflandırmasında ise bu, giriş metni için olası kategorilerin döndürülmesi anlamına gelir.

Aşağıdaki kod, görevle işlemin nasıl yürütüleceğini gösterir modeli.

// Wait to run the function until inner text is set
const result: TextClassifierResult = await textClassifier.classify(
  inputText
);

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

Metin Sınıflandırıcı, listeyi içeren bir TextClassifierResult çıktısı verir farklı olasılık seçeneklerini görebilirsiniz. Kategoriler Bu nedenle, farklı kategoriler istiyorsanız farklı bir model seçin, veya mevcut bir tanesini yeniden eğitebilirsiniz.

Aşağıda, bu görevdeki çıkış verilerinin bir örneği gösterilmektedir:

TextClassificationResult:
  Classification #0 (single classification head):
    ClassificationEntry #0:
      Category #0:
        category name: "positive"
        score: 0.8904
        index: 0
      Category #1:
        category name: "negative"
        score: 0.1096
        index: 1

Bu sonuç, giriş metninde BERT sınıflandırıcı çalıştırılarak elde edilmiştir: "an imperfect but overall entertaining mystery".