Mulai cepat: Periksa ejaan dengan REST API Pemeriksa Ejaan Bing dan C#

Peringatan

Pada 30 Oktober 2020, API Bing Search dipindahkan dari layanan Azure AI ke Bing Search Services. Dokumentasi ini disediakan hanya untuk referensi. Untuk dokumentasi terbaru, lihat dokumentasi Bing Search API. Untuk petunjuk tentang cara membuat sumber daya Azure baru untuk pencarian Bing, lihat Membuat sumber daya Pencarian Bing melalui Marketplace Azure.

Gunakan mulai cepat ini untuk melakukan panggilan pertama Anda ke Bing Spell Check REST API. Aplikasi C# sederhana ini mengirimkan permintaan ke API dan mengembalikan daftar koreksi yang disarankan.

Meskipun aplikasi ini ditulis dalam C#, API adalah layanan Web RESTful yang kompatibel dengan sebagian besar bahasa pemrograman. Kode sumber untuk aplikasi ini tersedia di GitHub.

Prasyarat

  • Semua edisi Visual Studio 2017 atau yang lebih baru.

  • Paket Newtonsoft.Json NuGet.

    Untuk menginstal paket ini di Visual studio:

    1. Di Penjelajah Solusi, klik kanan file Solusi.
    2. Pilih Kelola Paket NuGet untuk Solusi.
    3. Cari Newtonsoft.Json dan instal paket.
  • Jika menggunakan Linux/MacOS, Anda dapat menjalankan aplikasi ini menggunakan Mono.

Membuat grup sumber daya Azure

Mulai gunakan Bing Spell Check API dengan membuat salah satu sumber daya Azure berikut:

Sumber daya Bing Spell Check

  • Tersedia melalui portal Azure hingga Anda menghapus sumber daya.
  • Gunakan tingkat harga gratis untuk mencoba layanan, dan tingkatkan ke tingkat berbayar untuk produksi di kemudian hari.
  • Bing Spell Check API juga ditawarkan di beberapa tingkatan sumber daya Bing Search v7.

Sumber daya multilayanan

  • Tersedia melalui portal Microsoft Azure hingga Anda menghapus sumber daya.
  • Gunakan kunci dan titik akhir yang sama untuk aplikasi Anda, di beberapa layanan Azure AI.

Membuat dan menginisialisasi proyek

  1. Buat solusi konsol baru bernama SpellCheckSample di Visual Studio. Kemudian, tambahkan kumpulan nama XML berikut ke dalam file kode utama:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using System.Text;
    using Newtonsoft.Json;
    
  2. Buat variabel untuk titik akhir API, kunci langganan Anda, dan teks yang akan diperiksa ejaannya. Anda dapat menggunakan titik akhir global dalam kode berikut, atau menggunakan titik akhir subdomain kustom yang ditampilkan di portal Azure untuk sumber daya Anda.

    namespace SpellCheckSample
    {
        class Program
        {
            static string host = "https://api.cognitive.microsoft.com";
            static string path = "/bing/v7.0/spellcheck?";
            static string key = "<ENTER-KEY-HERE>";
            //text to be spell-checked
            static string text = "Hollo, wrld!";
        }
    }
    
  3. Membuat untai (karakter) untuk parameter pencarian Anda:

    1. Tetapkan kode pasar Anda ke parameter mkt dengan operator =. Kode pasar adalah kode negara/wilayah tempat Anda mengajukan permintaan.

    2. Tambahkan parameter mode dengan operator &, lalu tetapkan mode pemeriksa ejaan. Mode dapat berupa proof (menangkap sebagian besar kesalahan ejaan/tata bahasa) atau spell (menangkap sebagian besar kesalahan ejaan, tetapi tidak sebanyak kesalahan tata bahasa).

    static string params_ = "mkt=en-US&mode=proof";
    

Membuat dan mengirim permintaan pemeriksaan ejaan

  1. Buat fungsi asinkron yang disebut SpellCheck() untuk mengirim permintaan ke API. Buat HttpClient, dan tambahkan kunci langganan Anda ke header Ocp-Apim-Subscription-Key. Ikuti langkah-langkah berikutnya dalam fungsi.

    async static void SpellCheck()
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", key);
    
        HttpResponseMessage response = null;
        // add the rest of the code snippets here (except for main())...
    }
    
  2. Buat URI untuk permintaan Anda dengan menambahkan host, jalur, dan parameter Anda.

    string uri = host + path + params_;
    
  3. Buat daftar dengan objek KeyValuePair yang berisi teks Anda, dan gunakan untuk membuat objek FormUrlEncodedContent. Atur informasi header, dan gunakan PostAsync() untuk mengirim permintaan.

    var values = new Dictionary<string, string>();
    values.Add("text", text);
    var content = new FormUrlEncodedContent(values);
    content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
    response = await client.PostAsync(uri, new FormUrlEncodedContent(values));
    

Dapatkan dan cetak respons API

Dapatkan header ID klien

Jika respons berisi header X-MSEdge-ClientID, dapatkan nilainya dan cetak.

string client_id;
if (response.Headers.TryGetValues("X-MSEdge-ClientID", out IEnumerable<string> header_values))
{
    client_id = header_values.First();
    Console.WriteLine("Client ID: " + client_id);
}

Dapatkan respons

Dapatkan respons dari API. Deserialisasi objek JSON, dan cetak ke konsol.

string contentString = await response.Content.ReadAsStringAsync();

dynamic jsonObj = JsonConvert.DeserializeObject(contentString);
Console.WriteLine(jsonObj);

Memanggil fungsi pemeriksaan ejaan

Dalam fungsi Main() proyek Anda, panggil SpellCheck().

static void Main(string[] args)
{
    SpellCheck();
    Console.ReadLine();
}

Menjalankan aplikasi

Membangun dan menjalankan proyek Anda. Jika Anda menggunakan Visual Studio, tekan F5 untuk men-debug file.

Contoh respons JSON

Respons yang berhasil dikembalikan di JSON, seperti yang diperlihatkan dalam contoh berikut:

{
   "_type": "SpellCheck",
   "flaggedTokens": [
      {
         "offset": 0,
         "token": "Hollo",
         "type": "UnknownToken",
         "suggestions": [
            {
               "suggestion": "Hello",
               "score": 0.9115257530801
            },
            {
               "suggestion": "Hollow",
               "score": 0.858039839213461
            },
            {
               "suggestion": "Hallo",
               "score": 0.597385084464481
            }
         ]
      },
      {
         "offset": 7,
         "token": "wrld",
         "type": "UnknownToken",
         "suggestions": [
            {
               "suggestion": "world",
               "score": 0.9115257530801
            }
         ]
      }
   ]
}

Langkah berikutnya