Verificação ortográfica usando a API de Verificação Ortográfica do Bing
A Verificação Ortográfica do Bing executa verificação ortográfica contextual de texto, fornecendo sugestões embutidas para palavras incorretas. Este artigo explica como usar a API REST de Verificação Ortográfica do Bing para corrigir erros de ortografia em um Xamarin.Forms aplicativo.
Visão geral
A API REST de Verificação Ortográfica do Bing tem dois modos operacionais e um modo deve ser especificado ao fazer uma solicitação para a API:
Spell
corrige texto curto (até 9 palavras) sem alterações de maiúsculas e minúsculas.Proof
corrige texto longo, fornece correções de maiúsculas e minúsculas e pontuação básica e suprime correções agressivas.
Observação
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Uma chave de API deve ser obtida para usar a API de Verificação Ortográfica do Bing. Isso pode ser obtido em Experimentar serviços cognitivos
Para obter uma lista dos idiomas compatíveis com a API de Verificação Ortográfica do Bing, confira Idiomas com suporte. Para obter mais informações sobre a API de Verificação Ortográfica do Bing, consulte Documentação de Verificação Ortográfica do Bing.
Autenticação
Cada solicitação feita à API de Verificação Ortográfica do Bing requer uma chave de API que deve ser especificada como o valor do Ocp-Apim-Subscription-Key
cabeçalho. O exemplo de código a seguir mostra como adicionar a chave de API ao Ocp-Apim-Subscription-Key
cabeçalho de uma solicitação:
public BingSpellCheckService()
{
httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", Constants.BingSpellCheckApiKey);
}
A falha ao passar uma chave de API válida para a API de Verificação Ortográfica do Bing resultará em um erro de resposta 401.
Executando verificação ortográfica
A verificação ortográfica pode ser obtida fazendo uma solicitação GET ou POST para a SpellCheck
API em https://api.cognitive.microsoft.com/bing/v7.0/SpellCheck
. Ao fazer uma solicitação GET, o texto a ser verificado ortográfico é enviado como um parâmetro de consulta. Ao fazer uma solicitação POST, o texto a ser verificado ortográfico é enviado no corpo da solicitação. As solicitações GET são limitadas à verificação ortográfica de 1500 caracteres devido à limitação de comprimento da cadeia de caracteres do parâmetro de consulta. Portanto, as solicitações POST normalmente devem ser feitas, a menos que cadeias de caracteres curtas estejam sendo verificadas ortográficas.
No aplicativo de exemplo, o SpellCheckTextAsync
método invoca o processo de verificação ortográfica:
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;
}
O SpellCheckTextAsync
método gera um URI de solicitação e envia a solicitação para a SpellCheck
API, que retorna uma resposta JSON que contém o resultado. A resposta JSON é desserializada, com o resultado sendo retornado ao método de chamada para exibição.
Configurando a verificação ortográfica
O processo de verificação ortográfica pode ser configurado especificando parâmetros de consulta 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;
}
Esse método define o texto a ser verificado ortográfico e o modo marcar ortográfico.
Para obter mais informações sobre a API REST de Verificação Ortográfica do Bing, consulte Referência da API de Verificação Ortográfica v7.
Enviando a solicitação
O SendRequestAsync
método faz a solicitação GET para a API REST de Verificação Ortográfica do Bing e retorna a resposta:
async Task<string> SendRequestAsync(string url)
{
var response = await httpClient.GetAsync(url);
return await response.Content.ReadAsStringAsync();
}
Esse método envia a solicitação GET para a SpellCheck
API, com a URL de solicitação especificando o texto a ser traduzido e o modo de marcar ortográfico. Em seguida, a resposta é lida e retornada ao método de chamada.
A SpellCheck
API enviará HTTP status código 200 (OK) na resposta, desde que a solicitação seja válida, o que indica que a solicitação foi bem-sucedida e que as informações solicitadas estão na resposta. Para obter uma lista de objetos de resposta, consulte Objetos de resposta.
Como processar a resposta
A resposta da API é retornada no formato JSON. Os seguintes dados JSON mostram a mensagem de resposta para o texto Go shappin tommorow
com ortografia incorreta:
{
"_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"
}
A flaggedTokens
matriz contém uma matriz de palavras no texto que foram sinalizadas como não sendo escritas corretamente ou estão gramaticalmente incorretas. A matriz estará vazia se nenhum erro ortográfico ou gramatical for encontrado. As marcas dentro da matriz são:
offset
– um deslocamento baseado em zero do início da cadeia de caracteres de texto para a palavra que foi sinalizada.token
– a palavra na cadeia de caracteres de texto que não está escrita corretamente ou está gramaticalmente incorreta.type
– o tipo do erro que fez com que a palavra fosse sinalizada. Há dois valores possíveis –RepeatedToken
eUnknownToken
.suggestions
– uma matriz de palavras que corrigirá o erro ortográfico ou gramatical. A matriz é composta por umsuggestion
e umscore
, que indica o nível de confiança de que a correção sugerida está correta.
No aplicativo de exemplo, a resposta JSON é desserializada em uma SpellCheckResult
instância, com o resultado sendo retornado ao método de chamada para exibição. O exemplo de código a seguir mostra como a SpellCheckResult
instância é processada para exibição:
var spellCheckResult = await bingSpellCheckService.SpellCheckTextAsync(TodoItem.Name);
foreach (var flaggedToken in spellCheckResult.FlaggedTokens)
{
TodoItem.Name = TodoItem.Name.Replace(flaggedToken.Token, flaggedToken.Suggestions.FirstOrDefault().Suggestion);
}
Esse código itera pela coleção e substitui todas as FlaggedTokens
palavras incorretas incorretas ou incorretas incorretas ou incorretas incorretas no texto de origem pela primeira sugestão. As capturas de tela a seguir mostram antes e depois da marcar ortográfica:
Observação
O exemplo acima usa Replace
para simplificar, mas em uma grande quantidade de texto ele pode substituir o token errado. A API fornece o offset
valor que deve ser usado em aplicativos de produção para identificar o local correto no texto de origem para executar uma atualização.
Resumo
Este artigo explicou como usar a API REST de Verificação Ortográfica do Bing para corrigir erros de ortografia em um Xamarin.Forms aplicativo. A Verificação Ortográfica do Bing executa verificação ortográfica contextual de texto, fornecendo sugestões embutidas para palavras incorretas.