La tâche "Détecteur de langue MediaPipe" vous permet d'identifier la langue d'un texte. Ces vous explique comment utiliser le détecteur de langue avec les applications Android. Le code l'exemple décrit dans ces instructions est disponible sur GitHub
Pour voir concrètement en quoi consiste cette tâche, consultez le demo. Pour en savoir plus sur les fonctionnalités, les modèles et les options de configuration de cette tâche, consultez la section Présentation.
Exemple de code
L'exemple de code du détecteur de langue fournit une implémentation simple pour référence. Ce code vous aide à tester cette tâche et à commencer créer votre propre fonctionnalité de détection de la langue. Vous pouvez parcourir les Exemple de code du détecteur de langue sur GitHub.
Télécharger le code
Les instructions suivantes vous expliquent comment créer une copie locale de l'exemple à l'aide de l'outil de ligne de commande de contrôle des versions git.
<ph type="x-smartling-placeholder">Pour télécharger l'exemple de code:
- Clonez le dépôt Git à l'aide de la commande suivante:
git clone https://github.com/google-ai-edge/mediapipe-samples
- Vous pouvez éventuellement configurer votre instance Git pour utiliser le paiement creuse.
Vous n'avez donc que les fichiers de l'application exemple Détecteur de langue:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/languagedetector/android
Pour savoir comment configurer et exécuter un exemple avec Android Studio, consultez les exemples d'instructions de configuration du code dans le Guide de configuration pour Android
Composants clés
Les fichiers suivants contiennent le code crucial pour la classification de texte exemple d'application:
- LanguageDetectorHelper.kt : Initialise le détecteur de langue et gère la sélection du modèle.
- ResultsAdapter.kt : Gère et formate les résultats de la détection.
- MainActivity.kt :
Elle implémente l'application, y compris en appelant
LanguageDetectorHelper
etResultsAdapter
Configuration
Cette section décrit les étapes clés à suivre pour configurer votre environnement de développement spécifiquement pour utiliser le détecteur de langage. Pour obtenir des informations générales sur configurer votre environnement de développement pour utiliser les tâches MediaPipe, y compris versions de la plate-forme requises, consultez la Guide de configuration pour Android
<ph type="x-smartling-placeholder">Dépendances
Le détecteur de langue utilise les bibliothèques com.google.mediapipe:tasks-text
. Ajouter
au fichier build.gradle
de votre projet de développement d'applications Android.
Vous pouvez importer les dépendances requises avec le code suivant:
dependencies {
implementation 'com.google.mediapipe:tasks-text:latest.release'
}
Modèle
La tâche de détection de la langue MediaPipe nécessite un modèle entraîné et compatible avec cette tâche. Pour en savoir plus sur les modèles entraînés disponibles pour le détecteur de langue, consultez la section Modèles de la présentation des tâches.
Sélectionnez et téléchargez le modèle, puis stockez-le dans le répertoire de votre projet:
<dev-project-root>/src/main/assets
Spécifiez le chemin d'accès du modèle dans le paramètre ModelName
.
Créer la tâche
Vous pouvez utiliser l'une des fonctions createFrom...()
pour créer la tâche. La
La fonction createFromOptions()
accepte les options de configuration pour le langage
détecteur de fumée et de monoxyde de carbone. Vous pouvez également initialiser la tâche à l'aide de la fabrique createFromFile()
.
. La fonction createFromFile()
accepte un chemin d'accès relatif ou absolu vers
le fichier du modèle entraîné. Pour plus d'informations sur la configuration des tâches, consultez
Options de configuration.
Le code suivant montre comment créer et configurer cette tâche.
// For creating a language detector instance:
LanguageDetectorOptions options =
LanguageDetectorOptions.builder()
.setBaseOptions(
BaseOptions.builder()
.setModelAssetPath(modelPath)
.build()
)
.build();
LanguageDetector languageDetector = LanguageDetector.createFromOptions(context, options);
Vous trouverez un exemple de création d'une tâche dans l'exemple de code
LanguageDetectorHelper
fonction initDetector()
de la classe.
Options de configuration
Cette tâche comporte les options de configuration suivantes pour les applications Android:
Nom de l'option | Description | Plage de valeurs | Valeur par défaut |
---|---|---|---|
maxResults |
Définit le nombre maximal facultatif de prédictions de langues les mieux notées sur retour. Si cette valeur est inférieure à zéro, tous les résultats disponibles sont renvoyés. | Tous les nombres positifs | -1 |
scoreThreshold |
Définit le seuil de score de prédiction qui remplace celui indiqué dans les métadonnées du modèle (le cas échéant). Les résultats inférieurs à cette valeur sont refusés. | N'importe quel nombre décimal | Non défini |
categoryAllowlist |
Définit la liste facultative des codes de langue autorisés. Si ce champ n'est pas vide,
les prédictions de langue dont le code de langue n'est pas dans cet ensemble seront
filtrées. Cette option s'exclue mutuellement avec
categoryDenylist et l'utilisation des deux entraînent une erreur. |
Toutes les chaînes | Non défini |
categoryDenylist |
Définit la liste facultative des codes de langue qui ne sont pas autorisés. Si
non vide, les prédictions de langue dont le code de langue fait partie de cet ensemble seront filtrées
s'affiche. Cette option s'exclue mutuellement avec categoryAllowlist et
l'utilisation des deux
entraîne une erreur. |
Toutes les chaînes | Non défini |
Préparer les données
Le détecteur de langue fonctionne avec des données textuelles (String
). La tâche gère la saisie des données
le prétraitement, y compris la tokenisation et le prétraitement des Tensors. Tout
le prétraitement est géré dans la fonction detect()
. Il n'est pas nécessaire
un prétraitement supplémentaire
du texte d'entrée au préalable.
String inputText = "Some input text for the language detector";
Exécuter la tâche
Le détecteur de langue utilise la méthode LanguageDetector.detect()
pour traiter l'entrée
du texte et prédire sa langue. Vous devez utiliser une méthode d'exécution distincte
thread pour exécuter la détection afin d'éviter de bloquer l'utilisateur Android
thread d'interface utilisateur avec votre application.
Le code suivant montre comment exécuter le traitement avec la tâche à l'aide d'un thread d'exécution distinct.
// Predict the language of the input text.
fun classify(text: String) {
executor = ScheduledThreadPoolExecutor(1)
executor.execute {
val results = languageDetector.detect(text)
listener.onResult(results)
}
}
Vous pouvez voir un exemple d'exécution d'une tâche dans l'exemple de code
LanguageDetectorHelper
fonction detect()
de la classe.
Gérer et afficher les résultats
Le détecteur de langue génère un LanguageDetectorResult
composé d'une liste de
des prédictions en langage
et les probabilités de ces prédictions. La
des catégories de langage définies dans le modèle, consultez la présentation des tâches
Modèles pour en savoir plus sur le modèle que vous utilisez.
Voici un exemple de données de sortie de cette tâche:
LanguageDetectorResult:
LanguagePrediction #0:
language_code: "fr"
probability: 0.999781
Ce résultat a été obtenu en exécutant le modèle sur le texte d'entrée:
"Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent."
Vous pouvez voir un exemple d'affichage des résultats dans l'exemple de code
ResultsAdapter
et ViewHolder
en classe interne.