MediaPipe Dil Dedektörü görevi, bir metin parçasının dilini tanımlamanıza olanak tanır. Bu Talimatları, Android uygulamalarıyla Dil Algılayıcı'nın nasıl kullanılacağını göstermektedir. Kod bu talimatlarda açıklanan örnek şurada bulunabilir: GitHub'a gidin.
Bu görevi, demo. Özellikler, modeller ve yapılandırma seçenekleri hakkında daha fazla bilgi Bu görev hakkında daha fazla bilgi için Genel Bakış'ı inceleyin.
Kod örneği
Dil Dedektörü örnek kodu, bu işlevin görevi görebilir. Bu kod, görevi test edip kullanmaya başlamanıza yardımcı olur. kendi dil algılama özelliğinizi oluşturun. Web sitemiz g.co/newsinitiative/labs üzerinden Dil Algılayıcı örnek kodu bulabilirsiniz.
Kodu indirme
Aşağıdaki talimatlarda, örneğin yerel bir kopyasını nasıl oluşturacağınız gösterilmektedir kodu öğrenmek için git sürüm kontrolü komut satırı aracını kullanın.
Örnek kodu indirmek için:
- Aşağıdaki komutu kullanarak git deposunu klonlayın:
git clone https://github.com/google-ai-edge/mediapipe-samples
- İsteğe bağlı olarak, git örneğinizi seyrek ödeme yöntemini kullanacak şekilde yapılandırın,
Dolayısıyla, yalnızca Dil Dedektörü örnek uygulamasına ait dosyalara sahip olursunuz:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/languagedetector/android
Android Studio ile örnek kurulum ve çalıştırma talimatları için örnek kod kurulum talimatlarını Android için Kurulum Kılavuzu.
Temel bileşenler
Aşağıdaki dosyalarda metin sınıflandırması için örnek uygulama:
- LanguageDetectorHelper.kt - Dil algılayıcıyı başlatır ve model seçimini gerçekleştirir.
- ResultsAdapter.kt - Algılama sonuçlarını işler ve biçimlendirir.
- MainActivity.kt
LanguageDetectorHelper
veResultsAdapter
.
Kurulum
Bu bölümde, geliştirme ortamınızı ve ayarlarınızı yönetmeyle ilgili ve Dil Dedektörü'nü kullanmak için özel olarak kod projeleri içerir. Şu konularda genel bilgi için: dahil olmak üzere MediaPipe görevlerini kullanmak için geliştirme ortamınızı daha fazla bilgi için Android için kurulum kılavuzu.
Bağımlılıklar
Dil Algılayıcı, com.google.mediapipe:tasks-text
kitaplıklarını kullanır. Bunu ekle
build.gradle
dosyasına bağımlılık.
Gerekli bağımlılıkları aşağıdaki kodu kullanarak içe aktarabilirsiniz:
dependencies {
implementation 'com.google.mediapipe:tasks-text:latest.release'
}
Model
MediaPipe Dil Dedektörü görevi bu görevi görebilir. Dil Dedektörü için eğitilmiş mevcut modeller hakkında daha fazla bilgi için göreve genel bakış Modeller bölümü.
Modeli seçin ve indirin, ardından proje dizininizde depolayın:
<dev-project-root>/src/main/assets
ModelName
parametresi içinde modelin yolunu belirtin.
Görevi oluşturma
Görevi oluşturmak için createFrom...()
işlevlerinden birini kullanabilirsiniz. İlgili içeriği oluşturmak için kullanılan
createFromOptions()
işlevi, dil için yapılandırma seçeneklerini kabul eder
tıklayın. Görevi, createFromFile()
fabrikasını kullanarak da başlatabilirsiniz
işlevini kullanın. createFromFile()
işlevi,
eğitilen model dosyasına göre düzenleyin. Görevleri yapılandırma 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.
// For creating a language detector instance:
LanguageDetectorOptions options =
LanguageDetectorOptions.builder()
.setBaseOptions(
BaseOptions.builder()
.setModelAssetPath(modelPath)
.build()
)
.build();
LanguageDetector languageDetector = LanguageDetector.createFromOptions(context, options);
Nasıl görev oluşturulacağına dair bir örneği kod örneğinde görebilirsiniz.
LanguageDetectorHelper
initDetector()
sınıf işlevi.
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 |
---|---|---|---|
maxResults |
İsteğe bağlı maksimum puanlı dil tahmini sayısını dön. Bu değer sıfırdan küçükse tüm kullanılabilir 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 |
İsteğe bağlı, izin verilen dil kodlarının listesini ayarlar. Boş değilse
dil kodu bu kümede olmayan dil tahminleri
filtrelendi. Bu seçenek birlikte kullanılamaz
categoryDenylist ve her iki sonucu da kullanmak hataya neden olur. |
Tüm dizeler | Ayarlanmadı |
categoryDenylist |
İzin verilmeyen dil kodlarının isteğe bağlı listesini ayarlar. Eğer
Dil kodu bu kümede bulunan boş olmayan dil tahminleri filtrelenir
çıkar. Bu seçenek categoryAllowlist ve
kullanılması bir hatayla sonuçlanır. |
Tüm dizeler | Ayarlanmadı |
Verileri hazırlama
Dil Algılayıcı, metin (String
) verileriyle çalışır. Görev, veri girişini işler
ön işleme dahil edilir. Tümü
ön işleme, detect()
işlevi içinde işlenir. Herhangi bir
giriş metninin ek ön işleme tabi tutulmasını sağlar.
String inputText = "Some input text for the language detector";
Görevi çalıştırma
Dil Algılayıcı, girişi işlemek için LanguageDetector.detect()
yöntemini kullanır
ve metnin dilini tahmin etmek için kullanılır. Ayrı bir yürütme yöntemi kullanmanız gerekir.
Android kullanıcısının engellenmesini önlemek amacıyla algılamayı yürütmek için kullanılan iş parçacığı
uygulamanızla etkileşim kurun.
Aşağıdaki kod, görevle işlemin nasıl yürütüleceğini gösterir iş parçacığı modelini kullanır.
// Predict the language of the input text.
fun classify(text: String) {
executor = ScheduledThreadPoolExecutor(1)
executor.execute {
val results = languageDetector.detect(text)
listener.onResult(results)
}
}
Kod örneğinde, bir görevin nasıl çalıştırılacağına dair bir örneği görebilirsiniz.
LanguageDetectorHelper
detect()
sınıf işlevi.
Sonuçları işleme ve görüntüleme
Dil Algılayıcı şu listeden oluşan bir LanguageDetectorResult
çıkarır:
ve bu tahminlerin olasılıkları. İlgili içeriği oluşturmak için kullanılan
dil kategorileri modelde tanımlanmışsa göreve genel bakış
Modeller bölümüne göz atın.
Aşağıda, bu görevdeki çıkış verilerinin bir örneği gösterilmektedir:
LanguageDetectorResult:
LanguagePrediction #0:
language_code: "fr"
probability: 0.999781
Bu sonuç, giriş metninde model çalıştırılarak elde edilmiştir:
"Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent."
Kod örneğinde, sonuçların nasıl görüntüleneceğine dair bir örneği
ResultsAdapter
ve ViewHolder
iç sınıf.