Vous pouvez utiliser ML Kit pour identifier la langue d'une chaîne de texte. Vous pouvez obtenir la langue la plus probable de la chaîne ou obtenir des scores de confiance pour toutes les dans les différentes langues possibles.
ML Kit reconnaît du texte dans 103 langues différentes dans son écriture native. Le texte romanisé est également reconnu pour les langues suivantes : arabe, bulgare, chinois, grec, hindi, japonais et russe.
Avant de commencer
- Si ce n'est pas déjà fait, Ajoutez Firebase à votre projet Android.
- Ajouter les dépendances des bibliothèques Android ML Kit à votre module
Fichier Gradle (au niveau de l'application) (généralement
app/build.gradle
):apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' dependencies { // ... implementation 'com.google.firebase:firebase-ml-natural-language:22.0.0' implementation 'com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7' }
Identifier la langue d'une chaîne
Pour identifier la langue d'une chaîne, récupérez une instance de
FirebaseLanguageIdentification
, puis transmettez la chaîne à la fonction
identifyLanguage()
.
Exemple :
FirebaseLanguageIdentification languageIdentifier =
FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
languageIdentifier.identifyLanguage(text)
.addOnSuccessListener(
new OnSuccessListener<String>() {
@Override
public void onSuccess(@Nullable String languageCode) {
if (languageCode != "und") {
Log.i(TAG, "Language: " + languageCode);
} else {
Log.i(TAG, "Can't identify language.");
}
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Model couldn’t be loaded or other internal error.
// ...
}
});
Si l'appel aboutit, une
Le code de langue BCP-47 est
transmis à l'écouteur de réussite, indiquant la langue du texte. Consultez le
liste complète des langues acceptées Si non
langue peut être détectée avec certitude, le code und
(indéterminé) est transmis.
Par défaut, ML Kit ne renvoie une valeur autre que und
uniquement lorsqu'il identifie
la langue avec un niveau de confiance d'au moins 0,5. Vous pouvez modifier ce paramètre
en transmettant un objet FirebaseLanguageIdentificationOptions
à
getLanguageIdentification()
:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyLanguageConfidenceThreshold(0.34f)
.build());
Obtenir les langues possibles d'une chaîne
Pour obtenir les valeurs de confiance des langues les plus probables d'une chaîne, obtenez une
instance de FirebaseLanguageIdentification
, puis transmettez la chaîne à la
identifyAllLanguages()
.
Exemple :
FirebaseLanguageIdentification languageIdentifier =
FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
languageIdentifier.identifyAllLanguages(text)
.addOnSuccessListener(
new OnSuccessListener<String>() {
@Override
public void onSuccess(List<IdentifiedLanguage> identifiedLanguages) {
for (IdentifiedLanguage identifiedLanguage : identifiedLanguages) {
String language = identifiedLanguage.getLanguageCode();
float confidence = identifiedLanguage.getConfidence();
Log.i(TAG, language + " (" + confidence + ")");
}
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Model couldn’t be loaded or other internal error.
// ...
}
});
Si l'appel aboutit, une liste d'objets IdentifiedLanguage
est transmise à
écouteur de réussite. À partir de chaque objet, vous pouvez obtenir
le code BCP-47 du langage et
le niveau de confiance de la chaîne dans cette langue. Consultez le
liste complète des langues acceptées Notez que ces valeurs indiquent le niveau de confiance que la chaîne entière est dans la langue donnée. ML Kit n'identifie pas plusieurs langues dans une seule chaîne.
Par défaut, ML Kit ne renvoie que les langues dont le niveau de confiance est au moins égal
0,01. Vous pouvez modifier ce seuil en transmettant un objet FirebaseLanguageIdentificationOptions
à getLanguageIdentification()
:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyAllLanguagesConfidenceThreshold(0.5f)
.build());
Si aucune langue n'atteint ce seuil, la liste comportera un élément, dont la valeur
und