クイック スタート:Bing Spell Check REST API と Node.js を使用してスペルをチェックする

警告

2020 年 10 月 30 日に、Bing Search API は Azure AI サービスから Bing Search サービスに移行されました。 このドキュメントは、参考用としてのみ提供されています。 更新されたドキュメントについては、Bing search API のドキュメントを参照してください。 Bing 検索用の新しい Azure リソースを作成する手順については、「Azure Marketplace から Bing Search リソースを作成する」を参照してください。

このクイック スタートを使用して、Bing Spell Check の REST API を呼び出してみましょう。 このシンプルな JavaScript アプリケーションは、API に要求を送信して、一連の修正候補を返します。

このアプリケーションは JavaScript で記述されていますが、この API はほとんどのプログラミング言語と互換性のある RESTful Web サービスです。 このアプリケーションのソース コードは、GitHub で入手できます。

前提条件

Azure リソースを作成する

次のいずれかの Azure リソースを作成して、Bing Spell Check API の使用を開始します。

Bing Spell Check リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。
  • Bing Spell Check API は、Bing Search v7 リソースのいくつかのレベルでも提供されています。

マルチサービス リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。

プロジェクトの作成と初期化

  1. 普段使用している IDE またはエディターで新しい JavaScript ファイルを作成します。 厳格度を設定し、https を要求します。 次に、API エンドポイントのホスト、パス、サブスクリプション キーの変数を作成します。 次のコードのグローバル エンドポイントを使用するか、Azure portal に表示される、対象のリソースのカスタム サブドメイン エンドポイントを使用することができます。

    'use strict';
    let https = require ('https');
    
    let host = 'api.cognitive.microsoft.com';
    let path = '/bing/v7.0/spellcheck';
    let key = '<ENTER-KEY-HERE>';
    
  2. 検索パラメーターとチェック対象のテキストの変数を作成します。

    1. = 演算子を使用して、mkt パラメーターに市場コードを割り当てます。 市場コードは、要求の送信元となる国/地域のコードです。

    2. & 演算子を使用して mode パラメーターを追加し、スペルチェック モードを割り当てます。 モードは proof (スペルまたは文法のほとんどのエラーが検出されます)、または spell (スペル ミスはほとんど検出されますが、文法エラーの検出数は相対的に少なくなります) のいずれかにすることができます。

    let mkt = "en-US";
    let mode = "proof";
    let text = "Hollo, wrld!";
    let query_string = "?mkt=" + mkt + "&mode=" + mode;
    

要求のパラメーターを作成する

POST メソッドを含む新しいオブジェクトを作成して、要求のパラメーターを作成します。 実際のエンドポイントのパスとクエリ文字列とを付加したパスを追加してください。 次に、お使いのサブスクリプション キーを Ocp-Apim-Subscription-Key ヘッダーに追加します。

let request_params = {
   method : 'POST',
   hostname : host,
   path : path + query_string,
   headers : {
   'Content-Type' : 'application/x-www-form-urlencoded',
   'Content-Length' : text.length + 5,
      'Ocp-Apim-Subscription-Key' : key,
   }
};

応答ハンドラーの作成

API からの JSON 応答を受け取って出力する response_handler という関数を作成します。 応答本文の変数を作成します。 data フラグを受け取る際に、response.on() を使用して応答を追加します。 end フラグを受け取ったら、JSON 本文をコンソールに出力します。

let response_handler = function (response) {
    let body = '';
    response.on ('data', function (d) {
        body += d;
    });
    response.on ('end', function () {
        let body_ = JSON.parse (body);
        console.log (body_);
    });
    response.on ('error', function (e) {
        console.log ('Error: ' + e.message);
    });
};

要求を送信する

API の呼び出しには、https.request() を使用します。その際、実際の要求のパラメーターと応答ハンドラーを指定します。 目的のテキストを API に書き込んだら、要求を終了します。

let req = https.request (request_params, response_handler);
req.write ("text=" + text);
req.end ();

アプリケーションの実行

  1. プロジェクトをビルドして実行します。

  2. コマンド ラインを使用している場合は、次のコマンドを使用して、アプリケーションをビルドおよび実行します。

    node <FILE_NAME>.js
    

JSON の応答例

成功した応答は、次の例に示すように JSON で返されます。

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

次のステップ