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

警告

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

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

このアプリケーションは Ruby で記述されていますが、この 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 で新しい Ruby ファイルを作成し、次の要件を追加します。

    require 'net/http'
    require 'uri'
    require 'json'
    
  2. サブスクリプション キー、エンドポイントの URI、パスの変数を作成します。 次のコードのグローバル エンドポイントを使用するか、Azure portal に表示される、対象のリソースのカスタム サブドメイン エンドポイントを使用することができます。 要求のパラメーターを作成します。

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

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

    key = 'ENTER YOUR KEY HERE'
    uri = 'https://api.cognitive.microsoft.com'
    path = '/bing/v7.0/spellcheck?'
    params = 'mkt=en-us&mode=proof'
    

スペル チェック要求を送信する

  1. ホストの URI、パス、パラメーターの文字列から URI を作成します。 スペル チェックの対象となるテキストを含むようにクエリを設定します。

    uri = URI(uri + path + params)
    uri.query = URI.encode_www_form({
       # Request parameters
    'text' => 'Hollo, wrld!'
    })
    
  2. 前に作成した URI を使用して要求を作成します。 お使いのキーを Ocp-Apim-Subscription-Key ヘッダーに追加します。

    request = Net::HTTP::Post.new(uri)
    request['Content-Type'] = "application/x-www-form-urlencoded"
    request['Ocp-Apim-Subscription-Key'] = key
    
  3. 要求を送信します。

    response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
        http.request(request)
    end
    
  4. JSON 応答を取得してコンソールに出力します。

    result = JSON.pretty_generate(JSON.parse(response.body))
    puts result
    

アプリケーションの実行

プロジェクトをビルドして実行します。 コマンド ラインを使用している場合は、次のコマンドを使用してアプリケーションを実行します。

ruby <FILE_NAME>.rb

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

次のステップ