Bagikan melalui


Pemeriksaan Ejaan Menggunakan Bing Spell Check API

Pemeriksaan Ejaan Bing melakukan pemeriksaan ejaan kontekstual untuk teks, memberikan saran sebaris untuk kata yang salah eja. Artikel ini menjelaskan cara menggunakan Bing Spell Check REST API untuk memperbaiki kesalahan ejaan dalam aplikasi Xamarin.Forms .

Gambaran Umum

Bing Spell Check REST API memiliki dua mode operasi, dan mode harus ditentukan saat membuat permintaan ke API:

  • Spell mengoreksi teks pendek (hingga 9 kata) tanpa perubahan casing.
  • Proof mengoreksi teks panjang, menyediakan koreksi casing dan tanda baca dasar, dan menekan koreksi agresif.

Catatan

Jika Anda tidak memiliki langganan Azure, buatlah akun gratis sebelum Anda memulai.

Kunci API harus diperoleh untuk menggunakan Bing Spell Check API. Ini dapat diperoleh di Try Cognitive Services

Untuk daftar bahasa yang didukung oleh Bing Spell Check API, lihat Bahasa yang didukung. Untuk informasi selengkapnya tentang Bing Spell Check API, lihat Dokumentasi Pemeriksaan Ejaan Bing.

Autentikasi

Setiap permintaan yang dibuat ke Bing Spell Check API memerlukan kunci API yang harus ditentukan sebagai nilai Ocp-Apim-Subscription-Key header. Contoh kode berikut menunjukkan cara menambahkan kunci API ke Ocp-Apim-Subscription-Key header permintaan:

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

Kegagalan untuk meneruskan kunci API yang valid ke Bing Spell Check API akan mengakibatkan kesalahan respons 401.

Melakukan Pemeriksaan Ejaan

Pemeriksaan ejaan dapat dicapai dengan membuat permintaan GET atau POST ke SpellCheck API di https://api.cognitive.microsoft.com/bing/v7.0/SpellCheck. Saat membuat permintaan GET, teks yang akan diperiksa ejaannya dikirim sebagai parameter kueri. Saat membuat permintaan POST, teks yang akan diperiksa ejaannya dikirim dalam isi permintaan. Permintaan GET terbatas pada pemeriksaan ejaan 1500 karakter karena batasan panjang string parameter kueri. Oleh karena itu, permintaan POST biasanya harus dibuat kecuali string pendek sedang diperiksa ejaannya.

Dalam aplikasi sampel, SpellCheckTextAsync metode memanggil proses pemeriksaan ejaan:

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

Metode ini SpellCheckTextAsync menghasilkan URI permintaan lalu mengirim permintaan ke SpellCheck API, yang mengembalikan respons JSON yang berisi hasilnya. Respons JSON dideserialisasi, dengan hasil dikembalikan ke metode panggilan untuk ditampilkan.

Mengonfigurasi Pemeriksaan Ejaan

Proses pemeriksaan ejaan dapat dikonfigurasi dengan menentukan parameter kueri 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;
}

Metode ini mengatur teks yang akan diperiksa ejaannya, dan mode pemeriksaan ejaan.

Untuk informasi selengkapnya tentang REST API Pemeriksaan Ejaan Bing, lihat Referensi API Pemeriksaan Ejaan v7.

Mengirim Permintaan

Metode ini SendRequestAsync membuat permintaan GET ke REST API Pemeriksaan Ejaan Bing dan mengembalikan respons:

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

Metode ini mengirimkan permintaan GET ke SpellCheck API, dengan URL permintaan yang menentukan teks yang akan diterjemahkan, dan mode pemeriksaan ejaan. Respons kemudian dibaca dan dikembalikan ke metode panggilan.

SpellCheck API akan mengirim kode status HTTP 200 (OK) dalam respons, asalkan permintaan valid, yang menunjukkan bahwa permintaan berhasil dan bahwa informasi yang diminta berada dalam respons. Untuk daftar objek respons, lihat Objek respons.

Memproses Respons

Respons API dikembalikan dalam format JSON. Data JSON berikut menunjukkan pesan respons untuk teks Go shappin tommorowyang salah eja :

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

Array flaggedTokens berisi array kata dalam teks yang ditandai sebagai tidak dieja dengan benar atau salah secara tata bahasa. Array akan kosong jika tidak ada kesalahan ejaan atau tata bahasa yang ditemukan. Tag dalam array adalah:

  • offset – offset berbasis nol dari awal string teks ke kata yang ditandai.
  • token – kata dalam string teks yang tidak dieja dengan benar atau salah secara tata bahasa.
  • type – jenis kesalahan yang menyebabkan kata ditandai. Ada dua nilai yang mungkin - RepeatedToken dan UnknownToken.
  • suggestions – array kata yang akan memperbaiki kesalahan ejaan atau tata bahasa. Array terdiri dari dan suggestionscore, yang menunjukkan tingkat keyakinan bahwa koreksi yang disarankan sudah benar.

Dalam aplikasi sampel, respons JSON dideserialisasi ke dalam SpellCheckResult instans, dengan hasilnya dikembalikan ke metode panggilan untuk ditampilkan. Contoh kode berikut menunjukkan bagaimana instans diproses SpellCheckResult untuk ditampilkan:

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

Kode ini melakukan iterasi melalui FlaggedTokens koleksi dan mengganti kata yang salah eja atau salah tata bahasa dalam teks sumber dengan saran pertama. Cuplikan layar berikut ini memperlihatkan sebelum dan sesudah pemeriksaan ejaan:

Sebelum Pemeriksaan Ejaan

Setelah Pemeriksaan Ejaan

Catatan

Contoh di atas menggunakan untuk kesederhanaan Replace , tetapi di sejumlah besar teks dapat menggantikan token yang salah. API menyediakan offset nilai yang harus digunakan dalam aplikasi produksi untuk mengidentifikasi lokasi yang benar dalam teks sumber untuk melakukan pembaruan.

Ringkasan

Artikel ini menjelaskan cara menggunakan Bing Spell Check REST API untuk memperbaiki kesalahan ejaan dalam aplikasi Xamarin.Forms . Pemeriksaan Ejaan Bing melakukan pemeriksaan ejaan kontekstual untuk teks, memberikan saran sebaris untuk kata yang salah eja.