Python 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, nasıl kullanacağınızı göstereceğim.

Bu görevi, Web demosu. 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 görebilir. Bu kod, görevi test etmenize ve kendi metin sınıflandırma uygulamanızı geliştirmeye başladınız. Bu dosyaları görüntüleyebilir, çalıştırabilir Metin Sınıflandırıcı'yı düzenle örnek kod yalnızca web tarayıcınızı kullanarak.

Raspberry Pi için Metin Sınıflandırıcı'yı uyguluyorsanız Raspberry Pi örneği uygulamasında gösterilir.

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 Python kurulum kılavuzu.

Paketler

Metin Sınıflandırıcı, mediapipe pip paketini kullanır. Chrome Web Mağazası'ndaki aşağıdaki bağımlılıkları içerir:

$ python -m pip install mediapipe

İçe aktarılanlar

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ö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, ardından bu modeli yerel bir dizinde depolayın:

model_path = '/absolute/path/to/text_classifier.tflite'

BaseOptions nesnesi model_asset_path ile modelin yolunu belirtin parametresini kullanın:

base_options = BaseOptions(model_asset_path=model_path)

Görevi oluşturma

MediaPipe Metin Sınıflandırıcı görevi,create_from_options görevi görebilir. create_from_options işlevi, yapılandırma için değerleri kabul eder seçeneklerini ayarlayın. Görevi şu komutla da başlatabilirsiniz: create_from_model_path fabrika işlevi. create_from_model_path işlevi, eğitilen model dosyasının göreli veya mutlak yolunu kabul eder. Yapılandırma seçenekleri hakkında daha fazla bilgi için bkz. 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.

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çeneklerini içerir:

Seçenek Adı Açıklama Değer Aralığı Varsayılan Değer
display_names_locale 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
max_results İ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
score_threshold Ş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ı
category_allowlist İ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 category_denylist ile birlikte kullanılamaz ve her ikisi de hataya neden olur. Tüm dizeler Ayarlanmadı
category_denylist İ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.category_allowlist Tüm dizeler Ayarlanmadı

Verileri hazırlama

Metin Sınıflandırıcı, metin (str) verileriyle çalışır. Görev, veri girişini işler ön işleme dahil edilir.

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

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 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.

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ı, liste içeren bir TextClassifierResult nesnesi oluşturur 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".