LoginSignup
2
4

More than 5 years have passed since last update.

Watson Discovery操作 基本編 -APIによる関連度学習

Posted at

前提

IBM Watson™ Discovery サービスでは関連度学習の機能を使用して、自然言語照会の関連性を改善することができます。Discovery ツールまたは Discovery API のいずれかを使用して、学習させることができます。ここでは、APIを使用した関連度学習について記載します。

準備作業

最初に以下の情報を用意します。

  • username/password:Discoveryサービス資格情報から取得
  • environment_id/collection_id:Discoveryのcollection画面から取得
  • natural_language_query:学習させる検索文(”XXについて教えて”etc)
  • document_id:評価するドキュメントのID
  • relevance:関連性を示す整数値

relevanceフィールドは以下についても参照してください。

API を使用した結果関連性の改善

・relevance: 照会とトレーニング・データとの相対的な関連性を示す、0 から 100 までの範囲の整数。値が大きいほど、関連性が高くなります。値 0 は照会への関連性がないことを示し、値 100 は照会への絶対的な関連性を示します。

注: relevance パラメーターの範囲は、最大の柔軟性を確保にするために 0 から 100 になっていますが、例のスコアリングを単純化するためにもっと小さい範囲を使用できます。0 から 4 までを標準範囲にしたり、範囲全体を使用するものの 20 ずつの増分 (0、20、40、60、80、および 100) のみを使用するようにしたりできます。Discovery ツールは、関連性スコア 0 を使用して関連性なし を表し、10 で関連性あり を表します。Discovery ツールと API の両方を使用して文書のスコア付けを行うことを計画しているか、または、API から始めてツールに移行することを計画している場合は、この 0 および 10 の関連性スコアを使用してください。

コマンドの実行

準備作業で用意した情報を以下のコマンドに反映して実行します。

curl -X POST -u "{username}":"{password}" -H "Content-Type: application/json" -d
'{
  "natural_language_query": "{natural_language_query}",
  "examples": [
    {
      "document_id": "{document_id}",
      "relevance": "{relevance}"
    }
  ]
}' "https://gateway.watsonplatform.net/discovery/api/v1/environments/{environment_id}/collections/{collection_id}/training_data?version=2018-10-15"

コマンド実行例

curl -X POST -u "username":"password" -H "Content-Type: application/json" -d
'{
  "natural_language_query": "XXについて教えて",
  "examples": [
    {
      "document_id": "adaf50f1-2526-4fad-b670-7d6e8a42e6e6",
      "relevance": 10
    },
    {
      "document_id": "63919442-7d5b-4cae-ab7e-56f58b1390fe",
      "relevance": 0
    }
  ]
}' "https://gateway.watsonplatform.net/discovery/api/v1/environments/{environment_id}/collections/{collection_id}/training_data?version=2018-10-15"

上記の例では、コマンド中に検索文と文書に対する評価を入れていますが、Windowsで日本語を入れてコマンドを実行すると、文字化けしてしまうため、curlコマンドの「-d」の中身を別ファイルで作成してコマンドを実行することで文字化けを無くせます。

以下のようなjsonファイルを用意します。

training.json
{
  "natural_language_query": "XXについて教えて",
  "filter": "text:criminology",
  "examples": [
    {
      "document_id": "adaf50f1-2526-4fad-b670-7d6e8a42e6e6",
      "relevance": 10
    },
    {
      "document_id": "63919442-7d5b-4cae-ab7e-56f58b1390fe",
      "relevance": 0
    }
  ]
}

Windows環境で実行するコマンド

curl -X POST -u {username}:{password} -H Content-Type: application/json d @{ファイル名} "https://gateway.watsonplatform.net/discovery/api/v1/environments/{environment_id}/collections/{collection_id}/training_data?version=2018-10-15"

注: curlコマンドの内容は更新される可能性があるので必要に応じてAPIリファレンスの「Add query to training data」の情報を参照するようにしてください。
APIリファレンス
image.png

参考情報

APIリファレンス
API を使用した結果関連性の改善

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4