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 tommorow
yang 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
danUnknownToken
.suggestions
– array kata yang akan memperbaiki kesalahan ejaan atau tata bahasa. Array terdiri dari dansuggestion
score
, 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:
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.