Udostępnij za pośrednictwem


Sprawdzanie pisowni przy użyciu interfejsu API sprawdzania pisowni Bing

Funkcja sprawdzania pisowni Bing wykonuje kontekstowe sprawdzanie pisowni tekstu, zapewniając sugestie wbudowane dla błędnie napisanych wyrazów. W tym artykule wyjaśniono, jak za pomocą interfejsu API REST sprawdzania pisowni Bing poprawić błędy pisowni w Xamarin.Forms aplikacji.

Omówienie

Interfejs API REST sprawdzania pisowni Bing ma dwa tryby operacyjne i należy określić tryb podczas wykonywania żądania do interfejsu API:

  • Spell Poprawia krótki tekst (do 9 wyrazów) bez żadnych zmian wielkości liter.
  • Proof Poprawia długi tekst, zapewnia poprawki wielkości liter i podstawową interpunkcję oraz pomija agresywne poprawki.

Uwaga

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Aby korzystać z interfejsu API sprawdzania pisowni Bing, należy uzyskać klucz interfejsu API. Można to uzyskać w witrynie Try Cognitive Services (Wypróbuj usługi Cognitive Services)

Aby uzyskać listę języków obsługiwanych przez interfejs API sprawdzania pisowni Bing, zobacz Obsługiwane języki. Aby uzyskać więcej informacji na temat interfejsu API sprawdzania pisowni Bing, zobacz dokumentację sprawdzania pisowni Bing.

Uwierzytelnianie

Każde żądanie skierowane do interfejsu API sprawdzania pisowni Bing wymaga klucza interfejsu API, który powinien być określony jako wartość nagłówka Ocp-Apim-Subscription-Key . W poniższym przykładzie kodu pokazano, jak dodać klucz interfejsu API do Ocp-Apim-Subscription-Key nagłówka żądania:

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

Niepowodzenie przekazania prawidłowego klucza interfejsu API do interfejsu API sprawdzania pisowni Bing spowoduje błąd odpowiedzi 401.

Wykonywanie sprawdzania pisowni

Sprawdzanie pisowni można osiągnąć, wysyłając żądanie GET lub POST do interfejsu SpellCheck API pod adresem https://api.cognitive.microsoft.com/bing/v7.0/SpellCheck. Podczas wykonywania żądania GET tekst, który ma być sprawdzany, jest wysyłany jako parametr zapytania. Podczas wysyłania żądania POST tekst, który ma być sprawdzany, jest wysyłany w treści żądania. Żądania GET są ograniczone do sprawdzania pisowni 1500 znaków ze względu na ograniczenie długości ciągu parametru zapytania. W związku z tym żądania POST powinny być zwykle wykonywane, chyba że są sprawdzane krótkie ciągi pisowni.

W przykładowej aplikacji SpellCheckTextAsync metoda wywołuje proces sprawdzania pisowni:

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

Metoda SpellCheckTextAsync generuje identyfikator URI żądania, a następnie wysyła żądanie do interfejsu SpellCheck API, co zwraca odpowiedź JSON zawierającą wynik. Odpowiedź JSON jest deserializowana, a wynik jest zwracany do metody wywołującej do wyświetlenia.

Konfigurowanie sprawdzania pisowni

Proces sprawdzania pisowni można skonfigurować, określając parametry zapytania 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;
}

Ta metoda ustawia tekst do sprawdzenia pisowni i tryb sprawdzania pisowni.

Aby uzyskać więcej informacji na temat interfejsu API REST sprawdzania pisowni Bing, zobacz Dokumentacja interfejsu API sprawdzania pisowni w wersji 7.

Wysyłanie żądania

Metoda SendRequestAsync wysyła żądanie GET do interfejsu API REST sprawdzania pisowni Bing i zwraca odpowiedź:

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

Ta metoda wysyła żądanie GET do interfejsu SpellCheck API z adresem URL żądania określającym tekst do tłumaczenia i trybem sprawdzania pisowni. Odpowiedź jest następnie odczytywana i zwracana do metody wywołującej.

Interfejs SpellCheck API wyśle kod stanu HTTP 200 (OK) w odpowiedzi, pod warunkiem, że żądanie jest prawidłowe, co wskazuje, że żądanie powiodło się i czy żądane informacje są w odpowiedzi. Aby uzyskać listę obiektów odpowiedzi, zobacz Obiekty odpowiedzi.

Przetwarzanie odpowiedzi

Odpowiedź interfejsu API jest zwracana w formacie JSON. Następujące dane JSON zawierają komunikat odpowiedzi dla błędnie napisanego tekstu 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"
}

Tablica flaggedTokens zawiera tablicę wyrazów w tekście, które zostały oznaczone jako niepoprawne lub są niepoprawne gramatyczne. Tablica będzie pusta, jeśli nie znaleziono błędów pisowni ani gramatyki. Tagi w tablicy to:

  • offset — przesunięcie na podstawie zera od początku ciągu tekstowego na wyraz oflagowany.
  • token — słowo w ciągu tekstowym, które nie jest poprawnie napisane lub jest niepoprawne gramatyczne.
  • type — typ błędu, który spowodował oflagowane słowo. Istnieją dwie możliwe wartości : RepeatedToken i UnknownToken.
  • suggestions — tablica wyrazów, które poprawią błąd pisowni lub gramatyki. Tablica składa się z elementu suggestion i score, który wskazuje poziom pewności, że sugerowana korekta jest poprawna.

W przykładowej aplikacji odpowiedź JSON jest deserializowana w SpellCheckResult wystąpieniu, a wynik jest zwracany do metody wywołującej do wyświetlenia. W poniższym przykładzie kodu pokazano, jak wystąpienie jest przetwarzane do wyświetlania 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);
}

Ten kod wykonuje iterację po FlaggedTokens kolekcji i zastępuje wszelkie błędnie napisane lub gramatyczne niepoprawne wyrazy w tekście źródłowym pierwszą sugestią. Poniższe zrzuty ekranu pokazują przed sprawdzaniem pisowni i po nim:

Przed sprawdzeniem pisowni

Po sprawdzeniu pisowni

Uwaga

W powyższym przykładzie użyto Replace dla uproszczenia, ale w dużej ilości tekstu może on zastąpić nieprawidłowy token. Interfejs API udostępnia offset wartość, która powinna być używana w aplikacjach produkcyjnych w celu zidentyfikowania prawidłowej lokalizacji w tekście źródłowym w celu przeprowadzenia aktualizacji.

Podsumowanie

W tym artykule wyjaśniono, jak za pomocą interfejsu API REST sprawdzania pisowni Bing poprawić błędy pisowni w Xamarin.Forms aplikacji. Funkcja sprawdzania pisowni Bing wykonuje kontekstowe sprawdzanie pisowni tekstu, zapewniając sugestie wbudowane dla błędnie napisanych wyrazów.