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

샘플 다운로드 샘플 다운로드Download Sample Download the sample

Bing Spell Check에 맞춤법이 틀린된 단어에 대 한 인라인 제안 제공 텍스트를 확인 하는 상황에 맞는 맞춤법이 수행 합니다. 이 문서에서는 Xamarin.Forms 응용 프로그램에서 맞춤법 오류를 해결 하려면 Bing Spell Check REST API를 사용 하는 방법을 설명 합니다.Bing Spell Check performs contextual spell checking for text, providing inline suggestions for misspelled words. This article explains how to use the Bing Spell Check REST API to correct spelling errors in a Xamarin.Forms application.

개요Overview

Bing Spell Check REST API에 두 가지 작동 모드 및 API에 요청할 때 모드를 지정 해야 합니다.The Bing Spell Check REST API has two operating modes, and a mode must be specified when making a request to the API:

  • Spell 짧은 텍스트 (최대 9 개의 단어) 대/소문자 변경 하지 않고 수정합니다.Spell corrects short text (up to 9 words) without any casing changes.
  • Proof 긴 텍스트를 수정, 대/소문자 수정 및 기본 문장 부호, 제공 및 적극적으로 수정 하지 않습니다.Proof corrects long text, provides casing corrections and basic punctuation, and suppresses aggressive corrections.

Bing Spell Check API를 사용 하는 API 키를 가져와야 합니다.An API key must be obtained to use the Bing Spell Check API. 가져올 수 있습니다 Cognitive 서비스 시도This can be obtained at Try Cognitive Services

Bing Spell Check API를 지 원하는 언어 목록은 참조 하세요 지원 되는 언어합니다.For a list of the languages supported by the Bing Spell Check API, see Supported languages. Bing Spell Check API에 대 한 자세한 내용은 참조 하세요. Bing 맞춤법 검사 설명서합니다.For more information about the Bing Spell Check API, see Bing Spell Check Documentation.

인증Authentication

Bing Spell Check API에 대 한 모든 요청 값으로 지정 해야 하는 API 키가 필요 합니다 Ocp-Apim-Subscription-Key 헤더입니다.Every request made to the Bing Spell Check API requires an API key that should be specified as the value of the Ocp-Apim-Subscription-Key header. 다음 코드 예제에는 API 키를 추가 하는 방법을 보여 줍니다는 Ocp-Apim-Subscription-Key 요청 헤더:The following code example shows how to add the API key to the Ocp-Apim-Subscription-Key header of a request:

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

Bing Spell Check API를 유효한 API 키를 전달 하는 오류 401 응답 오류가 발생 합니다.Failure to pass a valid API key to the Bing Spell Check API will result in a 401 response error.

맞춤법 검사 수행Performing Spell Checking

GET 또는 POST 요청을 수행 하 여 맞춤법 검사를 수행할 수 있습니다 합니다 SpellCheck API에 https://api.cognitive.microsoft.com/bing/v7.0/SpellCheck입니다.Spell checking can be achieved by making a GET or POST request to the SpellCheck API at https://api.cognitive.microsoft.com/bing/v7.0/SpellCheck. 에 GET 요청을 수행할 때 맞춤법을 검사할 텍스트 쿼리 매개 변수로 전송 됩니다.When making a GET request, the text to be spell checked is sent as a query parameter. 에 POST 요청을 수행할 때 맞춤법을 검사할 텍스트는 요청 본문에 전송 됩니다.When making a POST request, the text to be spell checked is sent in the request body. GET 요청은 맞춤법 검색 쿼리 매개 변수 문자열 길이 제한으로 인해 1,500 자 이내로 제한 됩니다.GET requests are limited to spell checking 1500 characters due to the query parameter string length limitation. 따라서 POST 요청은 짧은 문자열에는 맞춤법 검사 되는 경우가 아니면 일반적으로 설정 안 됩니다.Therefore, POST requests should typically be made unless short strings are being spell checked.

샘플 응용 프로그램에서을 SpellCheckTextAsync 맞춤법 검색 프로세스를 호출 하는 메서드:In the sample application, the SpellCheckTextAsync method invokes the spell checking process:

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를 생성 하 고 요청을 보냅니다는 SpellCheck 결과 포함 하는 JSON 응답을 반환 하는 API입니다.The SpellCheckTextAsync method generates a request URI and then sends the request to the SpellCheck API, which returns a JSON response containing the result. 표시에 대 한 호출 메서드로 반환 되는 결과 사용 하 여 JSON 응답을 deserialize 됩니다.The JSON response is deserialized, with the result being returned to the calling method for display.

맞춤법 검사 구성Configuring Spell Checking

HTTP 쿼리 매개 변수를 지정 하 여 맞춤법 검색 프로세스를 구성할 수 있습니다.The spell checking process can be configured by specifying HTTP query parameters:

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

이 메서드는 텍스트 옵션을 선택 하는 맞춤법 및 맞춤법 검사 모드를 설정 합니다.This method sets the text to be spell checked, and the spell check mode.

Bing Spell Check REST API에 대 한 자세한 내용은 참조 하세요. Spell Check API v7 참조합니다.For more information about the Bing Spell Check REST API, see Spell Check API v7 reference.

요청을 보내기Sending the Request

SendRequestAsync 메서드는 Bing Spell Check REST API에 GET 요청을 수행 하 고 응답을 반환 합니다.The SendRequestAsync method makes the GET request to the Bing Spell Check REST API and returns the response:

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

이 메서드는 GET 요청을 전송 합니다 SpellCheck 변환할 텍스트를 지정 하는 요청 URL과 맞춤법 검사 모드를 사용 하 여 API.This method sends the GET request to the SpellCheck API, with the request URL specifying the text to be translated, and the spell check mode. 그런 다음 응답은 읽고 호출 메서드로 반환 됩니다.The response is then read and returned to the calling method.

SpellCheck API에서 HTTP 상태 코드 200 (정상) 요청 올바른지 요청이 성공 했는지를 나타내는 응답에 요청 된 정보를 제공 하 고 응답을 보냅니다.The SpellCheck API will send HTTP status code 200 (OK) in the response, provided that the request is valid, which indicates that the request succeeded and that the requested information is in the response. 응답 개체의 목록을 참조 하세요 응답 개체합니다.For a list of response objects, see Response objects.

응답 처리Processing the Response

API 응답은 JSON 형식으로 반환 됩니다.The API response is returned in JSON format. 철자가 잘못 된 텍스트에 대 한 응답 메시지를 표시 하는 다음 JSON 데이터를 Go shappin tommorow:The following JSON data shows the response message for the misspelled text 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 배열 되 맞춤법이 잘못 또는 문법적으로 잘못 된 플래그가 지정 된 텍스트의 단어의 배열을 포함 합니다.The flaggedTokens array contains an array of words in the text that were flagged as not being spelled correctly or are grammatically incorrect. 배열은 맞춤법 또는 문법 오류가 없는지 없으면 비어 있게 됩니다.The array will be empty if no spelling or grammar errors are found. 배열 내에서 태그를 다음과 같습니다.The tags within the array are:

  • offset – 플래그가 지정 된 단어를 텍스트 문자열의 시작 부분에서 0부터 시작 오프셋입니다.offset – a zero-based offset from the beginning of the text string to the word that was flagged.
  • token – 철자가 정확 하지 않거나 문법적으로 올바르지 않습니다 하는 텍스트 문자열의 단어입니다.token – the word in the text string that is not spelled correctly or is grammatically incorrect.
  • type – 플래그가 지정 단어를 발생 시킨 오류 유형입니다.type – the type of the error that caused the word to be flagged. 두 개의 가능한 값 – RepeatedTokenUnknownToken입니다.There are two possible values – RepeatedToken and UnknownToken.
  • suggestions – 맞춤법 또는 문법 오류를 수정 하는 단어의 배열입니다.suggestions – an array of words that will correct the spelling or grammar error. 배열 이루어집니다를 suggestionscore, 제안 된 수정 사항이 올바른지 신뢰 수준을 나타냅니다.The array is made up of a suggestion and a score, which indicates the level of confidence that the suggested correction is correct.

샘플 응용 프로그램에서 JSON 응답으로 deserialize 하는 SpellCheckResult 인스턴스를 표시 하기 위해 호출 하는 메서드에서 반환 되는 결과입니다.In the sample application, the JSON response is deserialized into a SpellCheckResult instance, with the result being returned to the calling method for display. 다음 코드 예제에서는 하는 방법을 SpellCheckResult 인스턴스 표시 하기 위해 처리 됩니다.The following code example shows how the SpellCheckResult instance is processed for display:

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 컬렉션 및 모든 철자가 잘못 된 대체 또는 첫 번째 제안을 사용 하 여 원본 텍스트의 문법적으로 잘못 된 단어입니다.This code iterates through the FlaggedTokens collection and replaces any misspelled or grammatically incorrect words in the source text with the first suggestion. 다음 스크린샷은 spell check 전후 보여 줍니다.The following screenshots show before and after the spell check:

참고

사용 하 여 위의 예제 Replace 편의상 하지만 많은 양의 텍스트에서 잘못 된 토큰을 바꿀 수 것입니다.The example above uses Replace for simplicity, but across a large amount of text it could replace the wrong token. API가 제공 된 offset 업데이트를 수행 하는 원본 텍스트에서 올바른 위치를 식별 하려면 프로덕션 앱에서 사용 해야 하는 값입니다.The API provides the offset value which should be used in production apps to identify the correct location in the source text to perform an update.

요약Summary

이 문서에서는 Xamarin.Forms 응용 프로그램에서 맞춤법 오류를 해결 하려면 Bing Spell Check REST API를 사용 하는 방법을 설명 합니다.This article explained how to use the Bing Spell Check REST API to correct spelling errors in a Xamarin.Forms application. Bing Spell Check에 맞춤법이 틀린된 단어에 대 한 인라인 제안 제공 텍스트를 확인 하는 상황에 맞는 맞춤법이 수행 합니다.Bing Spell Check performs contextual spell checking for text, providing inline suggestions for misspelled words.