クイック スタート: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 で入手できます。
前提条件
- Node.js 6 以降。
Azure リソースを作成する
次のいずれかの Azure リソースを作成して、Bing Spell Check API の使用を開始します。
- ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
- Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。
- Bing Spell Check API は、Bing Search v7 リソースのいくつかのレベルでも提供されています。
- ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
- 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。
プロジェクトの作成と初期化
普段使用している 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>';
検索パラメーターとチェック対象のテキストの変数を作成します。
=
演算子を使用して、mkt
パラメーターに市場コードを割り当てます。 市場コードは、要求の送信元となる国/地域のコードです。&
演算子を使用して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 ();
アプリケーションの実行
プロジェクトをビルドして実行します。
コマンド ラインを使用している場合は、次のコマンドを使用して、アプリケーションをビルドおよび実行します。
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
}
]
}
]
}