Vérification orthographique à l’aide de l’API Vérification orthographique Bing

La vérification orthographique Bing effectue des case activée orthographiques contextuelles pour le texte, en fournissant des suggestions inline pour les mots mal orthographiés. Cet article explique comment utiliser l’API REST Vérification orthographique Bing pour corriger les erreurs d’orthographe dans une Xamarin.Forms application.

Vue d’ensemble

L’API REST Vérification orthographique Bing a deux modes d’exploitation et un mode doit être spécifié lors de l’envoi d’une requête à l’API :

  • Spell corrige le texte court (jusqu’à 9 mots) sans aucune modification de casse.
  • Proof corrige le texte long, fournit des corrections de casse et une ponctuation de base, et supprime les corrections agressives.

Remarque

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Une clé API doit être obtenue pour utiliser l’API Vérification orthographique Bing. Cette opération peut être obtenue à l’adresse Try Cognitive Services

Pour obtenir la liste des langues prises en charge par l’API Vérification orthographique Bing, consultez les langues prises en charge. Pour plus d’informations sur l’API Vérification orthographique Bing, consultez la documentation vérification orthographique Bing.

Authentification

Chaque requête adressée à l’API Vérification orthographique Bing nécessite une clé API qui doit être spécifiée comme valeur de l’en-tête Ocp-Apim-Subscription-Key . L’exemple de code suivant montre comment ajouter la clé API à l’en-tête Ocp-Apim-Subscription-Key d’une requête :

public BingSpellCheckService()
{
    httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", Constants.BingSpellCheckApiKey);
}

L’échec de la transmission d’une clé API valide à l’API Vérification orthographique Bing génère une erreur de réponse 401.

Exécution de la vérification orthographique

Le case activée d’orthographe peut être obtenu en effectuant une requête GET ou POST à l’API à l’adresse SpellCheckhttps://api.cognitive.microsoft.com/bing/v7.0/SpellCheck. Lors de l’exécution d’une requête GET, le texte à écrire case activée est envoyé en tant que paramètre de requête. Lorsque vous effectuez une requête POST, le texte à écrire case activée est envoyé dans le corps de la requête. Les requêtes GET sont limitées à l’orthographe case activée 1500 caractères en raison de la limitation de longueur de chaîne de paramètre de requête. Par conséquent, les requêtes POST doivent généralement être effectuées, sauf si des chaînes courtes sont orthographiques case activée ed.

Dans l’exemple d’application, la SpellCheckTextAsync méthode appelle le processus d’orthographe case activée ing :

public async Task<SpellCheckResult> SpellCheckTextAsync(string text)
{
    string requestUri = GenerateRequestUri(Constants.BingSpellCheckEndpoint, text, SpellCheckMode.Spell);
    var response = await SendRequestAsync(requestUri);
    var spellCheckResults = JsonConvert.DeserializeObject<SpellCheckResult>(response);
    return spellCheckResults;
}

La SpellCheckTextAsync méthode génère un URI de requête, puis envoie la requête à l’API SpellCheck , qui retourne une réponse JSON contenant le résultat. La réponse JSON est désérialisée, avec le résultat retourné à la méthode appelante pour l’affichage.

Configuration de la vérification orthographique

Le processus de case activée orthographique peut être configuré en spécifiant les paramètres de requête HTTP :

string GenerateRequestUri(string spellCheckEndpoint, string text, SpellCheckMode mode)
{
  string requestUri = spellCheckEndpoint;
  requestUri += string.Format("?text={0}", text);                         // text to spell check
  requestUri += string.Format("&mode={0}", mode.ToString().ToLower());    // spellcheck mode - proof or spell
  return requestUri;
}

Cette méthode définit le texte à case activée orthographié et le mode case activée orthographique.

Pour plus d’informations sur l’API REST Vérification orthographique Bing, consultez la référence de l’API Vérification orthographique v7.

Envoi de la requête

La SendRequestAsync méthode effectue la requête GET à l’API REST Vérification orthographique Bing et retourne la réponse :

async Task<string> SendRequestAsync(string url)
{
    var response = await httpClient.GetAsync(url);
    return await response.Content.ReadAsStringAsync();
}

Cette méthode envoie la requête GET à l’APISpellCheck, avec l’URL de requête spécifiant le texte à traduire et le mode case activée orthographique. La réponse est ensuite lue et retournée à la méthode appelante.

L’API envoie le SpellCheck code d’état HTTP 200 (OK) dans la réponse, à condition que la demande soit valide, ce qui indique que la demande a réussi et que les informations demandées sont dans la réponse. Pour obtenir la liste des objets de réponse, consultez Les objets Response.

Traitement de la réponse

La réponse de l’API est retournée au format JSON. Les données JSON suivantes affichent le message de réponse pour le texte Go shappin tommorowmal orthographié :

{  
   "_type":"SpellCheck",
   "flaggedTokens":[  
      {  
         "offset":3,
         "token":"shappin",
         "type":"UnknownToken",
         "suggestions":[  
            {  
               "suggestion":"shopping",
               "score":1
            }
         ]
      },
      {  
         "offset":11,
         "token":"tommorow",
         "type":"UnknownToken",
         "suggestions":[  
            {  
               "suggestion":"tomorrow",
               "score":1
            }
         ]
      }
   ],
   "correctionType":"High"
}

Le flaggedTokens tableau contient un tableau de mots dans le texte qui ont été marqués comme n’étant pas orthographiés correctement ou qui sont grammaticalement incorrects. Le tableau est vide si aucune erreur d’orthographe ou de grammaire n’est trouvée. Les balises dans le tableau sont les suivantes :

  • offset : décalage de base zéro entre le début de la chaîne de texte et le mot marqué.
  • token : mot dans la chaîne de texte qui n’est pas orthographié correctement ou est grammaticalement incorrect.
  • type : type de l’erreur qui a provoqué l’indicateur du mot. Il existe deux valeurs possibles : RepeatedToken et UnknownToken.
  • suggestions : tableau de mots qui corrigeront l’erreur d’orthographe ou de grammaire. Le tableau est constitué d’un suggestion et d’un score, qui indique le niveau de confiance que la correction suggérée est correcte.

Dans l’exemple d’application, la réponse JSON est désérialisée dans une SpellCheckResult instance, avec le résultat retourné à la méthode appelante pour l’affichage. L’exemple de code suivant montre comment l’instance SpellCheckResult est traitée pour l’affichage :

var spellCheckResult = await bingSpellCheckService.SpellCheckTextAsync(TodoItem.Name);
foreach (var flaggedToken in spellCheckResult.FlaggedTokens)
{
  TodoItem.Name = TodoItem.Name.Replace(flaggedToken.Token, flaggedToken.Suggestions.FirstOrDefault().Suggestion);
}

Ce code itère dans la FlaggedTokens collection et remplace les mots mal orthographiés ou grammaticalement incorrects dans le texte source par la première suggestion. Les captures d’écran suivantes s’affichent avant et après l’case activée orthographique :

Avant la vérification orthographique

Après vérification orthographique

Remarque

L’exemple ci-dessus utilise Replace pour simplifier, mais sur une grande quantité de texte, il peut remplacer le jeton incorrect. L’API fournit la offset valeur qui doit être utilisée dans les applications de production pour identifier l’emplacement approprié dans le texte source pour effectuer une mise à jour.

Résumé

Cet article a expliqué comment utiliser l’API REST Vérification orthographique Bing pour corriger les erreurs d’orthographe dans une Xamarin.Forms application. La vérification orthographique Bing effectue des case activée orthographiques contextuelles pour le texte, en fournissant des suggestions inline pour les mots mal orthographiés.