Détecter la langue
L'API Azure AI Language detection évalue les entrées de texte et, pour chaque document soumis, renvoie des identifiants de langue avec un score indiquant la force de l'analyse.
Cette capacité est utile pour les magasins de contenu qui collectent du texte arbitraire dont la langue est inconnue. Un autre scénario peut impliquer un chatbot. Si un utilisateur démarre une session avec le chatbot, la détection de la langue peut être utilisée pour déterminer la langue utilisée et vous permettre de configurer les réponses de votre bot dans la langue appropriée.
Vous pouvez analyser les résultats de cette analyse pour déterminer la langue utilisée dans le document d’entrée. La réponse fournit également un score qui reflète la confiance du modèle (valeur comprise entre 0 et 1).
La détection de la langue peut fonctionner avec des documents ou des expressions individuelles. Il est important de noter que la taille du document doit être inférieure à 5 120 caractères. La limite de taille s’applique par document et chaque collection est limitée à 1 000 éléments (ID). Un exemple de charge utile JSON correctement mise en forme que vous pourriez envoyer au service dans le corps de la demande est présenté ici, avec une collection de documents, chacun contenant un ID unique et le texte à analyser. Si vous le souhaitez, vous pouvez ajouter une propriété countryHint pour améliorer les performances de prédiction.
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id": "1",
"text": "Hello world",
"countryHint": "US"
},
{
"id": "2",
"text": "Bonjour tout le monde"
}
]
}
}
Le service renvoie une réponse JSON contenant un résultat pour chaque document présent dans le corps de la demande, avec notamment la langue prédite et une valeur indiquant le niveau de confiance de la prédiction. Le niveau de confiance est une valeur comprise entre 0 et 1. Plus la valeur est proche de 1, plus le niveau de confiance est élevé. Voici un exemple de réponse JSON standard correspondant à la requête JSON ci-dessus.
{ "kind": "LanguageDetectionResults",
"results": {
"documents": [
{
"detectedLanguage": {
"confidenceScore": 1,
"iso6391Name": "en",
"name": "English"
},
"id": "1",
"warnings": []
},
{
"detectedLanguage": {
"confidenceScore": 1,
"iso6391Name": "fr",
"name": "French"
},
"id": "2",
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
}
Dans notre exemple, toutes les langues affichent une confiance de 1, principalement parce que le texte est relativement simple et que sa langue est facile à identifier.
Si vous transmettez un document au contenu multilingue, le service se comporte un peu différemment. Un contenu de langues mixtes dans un document retourne la langue la plus représentée dans le contenu, mais avec une évaluation positive inférieure, reflétant la puissance marginale de cette évaluation. Dans l’exemple suivant, l’entrée est un mélange d’anglais, d’espagnol et de français. L'analyseur effectue une analyse statistique du texte pour déterminer la langue prédominante.
{
"documents": [
{
"id": "1",
"text": "Hello, I would like to take a class at your University. ¿Se ofrecen clases en español? Es mi primera lengua y más fácil para escribir. Que diriez-vous des cours en français?"
}
]
}
L’exemple suivant illustre une réponse pour cet exemple multilingue.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "Spanish",
"iso6391Name": "es",
"confidenceScore": 0.9375
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
La dernière condition à prendre en compte intervient en cas d’ambiguïté concernant le contenu de la langue. Ce scénario peut se produire si vous soumettez un texte que l'analyseur n'est pas en mesure d'analyser, par exemple en raison de problèmes de codage des caractères lors de la conversion du texte en variable de type chaîne. Par conséquent, la réponse pour le nom de la langue et le code ISO indiquera (inconnu) et la valeur du score sera renvoyée sous la forme 0
. L’exemple suivant illustre l’aspect de la réponse.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "(Unknown)",
"iso6391Name": "(Unknown)",
"confidenceScore": 0.0
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}