MediaPipe Metin Sınıflandırıcı görevi, metni pozitif veya negatif duygu gibi tanımlanmış bir dizi kategoriye göre sınıflandırmanızı sağlar. Kategoriler, kullandığınız modeli ve bu modelin nasıl eğitildiğini belirler. Bu talimatlar Metin Sınıflandırıcı'nın Python ile nasıl kullanılacağını gösterir.
Web demosunu görüntüleyerek bu görevi çalışırken görebilirsiniz. Bu görevin özellikleri, modelleri ve yapılandırma seçenekleri hakkında daha fazla bilgi edinmek için Genel Bakış bölümüne bakın.
Kod örneği
Metin Sınıflandırıcı örnek kodu, size referans olması açısından bu görevin Python'da eksiksiz bir uygulamasını sunmaktadır. Bu kod, bu görevi test etmenize ve kendi metin sınıflandırma uygulamanızı oluşturmaya başlamanıza yardımcı olur. Yalnızca web tarayıcınızı kullanarak Metin Sınıflandırıcı örnek kodunu görüntüleyebilir, çalıştırabilir ve düzenleyebilirsiniz.
Raspberry Pi için Metin Sınıflandırıcı'yı uyguluyorsanız Raspberry Pi örnek uygulamasına bakın.
Kurulum
Bu bölümde, geliştirme ortamınızı ayarlamanın temel adımları açıklanmaktadır ve projelerinizi özel olarak Metin Sınıflandırıcı'yı kullanacak şekilde kodlamalısınız. Platform sürümü gereksinimleri de dahil olmak üzere, MediaPipe Görevleri'ni kullanmak üzere geliştirme ortamınızı ayarlama hakkında genel bilgileri Python için kurulum kılavuzu bölümünde bulabilirsiniz.
Paketler
Metin Sınıflandırıcı, mediapipe pip paketini kullanır. Bu bağımlılıkları aşağıdakilerle yükleyebilirsiniz:
$ python -m pip install mediapipe
İçe Aktarımlar
Metin Sınıflandırıcı görev işlevlerine erişmek için aşağıdaki sınıfları içe aktarın:
from mediapipe.tasks import python
from mediapipe.tasks.python import text
Model
MediaPipe Metin Sınıflandırıcı görevi, bu görevle uyumlu, eğitilmiş bir model gerektirir. Metin Sınıflandırıcı için eğitilmiş modellerle ilgili daha fazla bilgi almak üzere göreve genel bakış Modeller bölümüne bakın.
Bir model seçip indirin ve ardından yerel bir dizinde depolayın:
model_path = '/absolute/path/to/text_classifier.tflite'
Modelin yolunu, aşağıda gösterildiği gibi BaseOptions
nesnesi model_asset_path
parametresiyle belirtin:
base_options = BaseOptions(model_asset_path=model_path)
Görevi oluşturma
MediaPipe Metin Sınıflandırıcı görevi, görevi ayarlamak için create_from_options
işlevini kullanır. create_from_options
işlevi, sınıflandırıcı seçeneklerini ayarlamak için kullanılan yapılandırma seçeneklerine ait değerleri kabul eder. Görevi, create_from_model_path
fabrika işlevini kullanarak da başlatabilirsiniz. create_from_model_path
işlevi, eğitilen model dosyasına giden göreli veya mutlak yolu kabul eder.
Yapılandırma seçenekleri 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.
base_options = python.BaseOptions(model_asset_path=model_path)
options = text.TextClassifierOptions(base_options=base_options)
with python.text.TextClassifier.create_from_options(options) as classifier:
classification_result = classifier.classify(text)
Yapılandırma seçenekleri
Bu görev, Android uygulamaları için aşağıdaki yapılandırma seçeneklerine sahiptir:
Seçenek Adı | Açıklama | Değer Aralığı | Varsayılan Değer |
---|---|---|---|
display_names_locale |
Varsa görev modelinin meta verilerinde sağlanan görünen adlar için kullanılacak etiketlerin dilini ayarlar. İngilizce için varsayılan değer en şeklindedir. TensorFlow Lite Metadata Writer API'yi kullanarak özel modelin meta verilerine yerelleştirilmiş etiketler ekleyebilirsiniz
| Yerel ayar kodu | en |
max_results |
İsteğe bağlı olarak döndürülecek en yüksek puanlı sınıflandırma sonuçlarının isteğe bağlı maksimum sayısını ayarlar. < 0 ise mevcut tüm sonuçlar döndürülür. | Pozitif sayılar | -1 |
score_threshold |
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 |
category_allowlist |
İsteğe bağlı olarak izin verilen kategori adları listesini ayarlar. Boş değilse kategori adı bu grupta yer almayan sınıflandırma sonuçları filtrelenir. Yinelenen veya bilinmeyen kategori adları yoksayılır.
Bu seçenek, category_denylist ile birlikte kullanılamaz ve her iki sonucun da kullanılması hataya neden olur. |
Herhangi bir dize | Belirlenmedi |
category_denylist |
İzin verilmeyen kategori adlarının isteğe bağlı listesini ayarlar. Boş değilse kategori adı bu kümede yer alan sınıflandırma sonuçları filtrelenir. Yinelenen veya bilinmeyen kategori adları yoksayılır. Bu seçenek category_allowlist ile birlikte kullanılamaz ve her iki sonucun da kullanılması hataya neden olur. |
Herhangi bir dize | Belirlenmedi |
Verileri hazırlama
Metin Sınıflandırıcı, metin (str
) 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, classify
işlevi içinde gerçekleştirilir. Giriş metninin önceden işlenmesine gerek yoktur.
input_text = '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 sınıflandırmada bu, giriş metni için olası kategorilerin döndürülmesi anlamına gelir.
Aşağıdaki kod, işlemenin görev modeliyle nasıl yürütüleceğini gösterir.
with python.text.TextClassifier.create_from_options(options) as classifier:
classification_result = classifier.classify(text)
Sonuçları işleme ve görüntüleme
Metin Sınıflandırıcı, giriş metni için olası kategorilerin listesini içeren bir TextClassifierResult
nesnesi üretir. Kategoriler, kullandığınız modele göre tanımlanır. Bu nedenle, farklı kategoriler istiyorsanız farklı bir model seçin veya mevcut bir modeli yeniden eğitin.
Aşağıda, bu görevden alınan çı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ç, şu giriş metninde BERT-sınıflandırıcı çalıştırılarak elde edildi: "an imperfect but overall entertaining mystery"
.