Bing Spell Check API를 사용하여 맞춤법 검사

Download Sample 샘플 다운로드

Bing Spell Check는 텍스트에 대해 상황에 맞는 맞춤법 검사 수행하여 철자가 틀린 단어에 대한 인라인 제안을 제공합니다. 이 문서에서는 Bing Spell Check REST API를 사용하여 애플리케이션의 Xamarin.Forms 맞춤법 오류를 수정하는 방법을 설명합니다.

개요

Bing Spell Check REST API에는 두 가지 운영 모드가 있으며 API를 요청할 때 모드를 지정해야 합니다.

  • Spell 는 대/소문자를 변경하지 않고 짧은 텍스트(최대 9단어)를 수정합니다.
  • Proof 는 긴 텍스트를 수정하고, 대/소문자 구분 및 기본 문장 부호를 제공하며, 공격적인 수정을 표시하지 않습니다.

참고 항목

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.

Bing Spell Check API를 사용하려면 API 키를 가져와야 합니다. 이 기능은 Cognitive Services 사용해 보기에서 얻을 수 있습니다.

Bing Spell Check API에서 지원하는 언어 목록은 지원되는 언어를 참조 하세요. Bing Spell Check API에 대한 자세한 내용은 Bing Spell Check 설명서를 참조 하세요.

인증

Bing Spell Check API에 대한 모든 요청에는 헤더 값 Ocp-Apim-Subscription-Key 으로 지정해야 하는 API 키가 필요합니다. 다음 코드 예제에서는 요청의 헤더에 API 키를 Ocp-Apim-Subscription-Key 추가하는 방법을 보여 있습니다.

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

Bing Spell Check API에 유효한 API 키를 전달하지 못하면 401 응답 오류가 발생합니다.

맞춤법 검사 수행

에서 API에 대한 GET 또는 POST 요청을 SpellCheck 수행하여 맞춤법 검사 수행할 수 있습니다https://api.cognitive.microsoft.com/bing/v7.0/SpellCheck. GET 요청을 만들 때 맞춤법이 검사 텍스트는 쿼리 매개 변수로 전송됩니다. POST 요청을 만들 때 검사 맞춤법 검사할 텍스트가 요청 본문에 전송됩니다. GET 요청은 쿼리 매개 변수 문자열 길이 제한으로 인해 1500자를 검사 맞춤법으로 제한됩니다. 따라서 짧은 문자열이 맞춤법 검사 경우가 아니면 일반적으로 POST 요청을 수행해야 합니다.

샘플 애플리케이션에서 메서드는 SpellCheckTextAsync 맞춤법 검사 프로세스를 호출합니다.

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;
}

이 메서드는 SpellCheckTextAsync 요청 URI를 생성한 다음, API에 SpellCheck 요청을 보내 결과를 포함하는 JSON 응답을 반환합니다. JSON 응답은 역직렬화되며 결과는 표시를 위해 호출 메서드로 반환됩니다.

맞춤법 검사 구성

맞춤법 검사 프로세스는 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;
}

이 메서드는 텍스트를 맞춤법 검사 및 맞춤법 검사 모드로 설정합니다.

Bing Spell Check REST API에 대한 자세한 내용은 Spell Check API v7 참조를 참조 하세요.

요청 보내기

이 메서드는 SendRequestAsync Bing Spell Check REST API에 GET 요청을 수행하고 응답을 반환합니다.

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

이 메서드는 번역할 SpellCheck 텍스트를 지정하는 요청 URL과 맞춤법 검사 모드를 사용하여 GET 요청을 API로 보냅니다. 그런 다음 응답을 읽고 호출 메서드로 반환합니다.

요청이 SpellCheck 유효하고 요청이 성공했으며 요청된 정보가 응답에 있음을 나타내는 경우 API는 응답에 HTTP 상태 코드 200(OK)을 보냅니다. 응답 개체 목록은 응답 개체를 참조 하세요.

응답 처리

API 응답은 JSON 형식으로 반환됩니다. 다음 JSON 데이터는 철자가 틀린 텍스트 Go shappin tommorow에 대한 응답 메시지를 보여줍니다.

{  
   "_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"
}

배열에는 flaggedTokens 철자가 올바르지 않거나 문법적으로 잘못된 것으로 플래그가 지정된 텍스트의 단어 배열이 포함됩니다. 맞춤법 또는 문법 오류가 없으면 배열이 비어 있습니다. 배열 내의 태그는 다음과 같습니다.

  • offset – 텍스트 문자열의 시작 부분에서 플래그가 지정된 단어까지의 0부터 시작하는 오프셋입니다.
  • token – 텍스트 문자열에서 철자가 올바르지 않거나 문법적으로 잘못된 단어입니다.
  • type – 단어의 플래그를 지정한 오류의 유형입니다. 두 가지 가능한 값 RepeatedToken 이 있습니다.UnknownToken
  • suggestions – 맞춤법 또는 문법 오류를 수정하는 단어 배열입니다. 배열은 제안된 수정이 정확하다는 신뢰도 수준을 나타내는 a suggestion 와 a score로 구성됩니다.

샘플 애플리케이션에서 JSON 응답은 인스턴스로 SpellCheckResult 역직렬화되고 결과는 표시를 위해 호출 메서드로 반환됩니다. 다음 코드 예제에서는 인스턴스가 표시를 SpellCheckResult 위해 처리되는 방법을 보여 줍니다.

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

이 코드는 컬렉션을 반복하고 소스 텍스트의 FlaggedTokens 철자가 잘못되었거나 문법적으로 잘못된 단어를 첫 번째 제안으로 바꿉니다. 다음 스크린샷은 맞춤법 검사 전후를 보여줍니다.

Before Spell Check

After Spell Check

참고 항목

위의 예제에서는 단순성을 사용 Replace 하지만 많은 양의 텍스트에서 잘못된 토큰을 대체할 수 있습니다. API는 업데이트를 수행하기 위해 원본 텍스트에서 올바른 위치를 식별하기 위해 프로덕션 앱에서 사용해야 하는 값을 제공합니다 offset .

요약

이 문서에서는 Bing Spell Check REST API를 사용하여 애플리케이션의 Xamarin.Forms 맞춤법 오류를 수정하는 방법을 설명했습니다. Bing Spell Check는 텍스트에 대해 상황에 맞는 맞춤법 검사 수행하여 철자가 틀린 단어에 대한 인라인 제안을 제공합니다.