0
0

More than 3 years have passed since last update.

Discovery Premium やってみた 〜APIでプロジェクト作成からクエリーまで〜

Last updated at Posted at 2021-06-22

目次

はじめに
前提
1.プロジェクト作成
2.コレクション作成
3.文書追加
4.クエリー
おわりに
参考情報

はじめに

IBMの自然言語処理系の製品であるDiscovery Premium。
いざ使ってみよう!と公式のAPI DOCを参照すると、RequestはおろかResponseのSampleも載っていない場合が多い。
ということで、APIでProject作成してコレクション追加してクエリーを投げるところまでやってみました。

前提

以下の環境・読者を想定しています。

  • Discovery Premiumが利用可能な状態である
  • curlコマンドが使える(この記事はcurlを使ってRequestを送っています)

1.プロジェクト作成

プロジェクト作成と、作成したプロジェクトの一覧の取得をしてみます。

  • プロジェクト作成

API DOCによると、以下のパラメータを設定するらしい。
image.png

CreateProjects
curl -v -H "Content-Type: application/json" "X-Accept: application/json" POST -d '{"name":"api_project2","type":"content_mining"}' -u "apikey:xxxxxxxxxxxxxxxxxxxxxxxxxx" "https://api.jp-tok.discovery.watson.cloud.ibm.com/instances/xxxxxxxxxxxxxxxxxxxxxxxxxxx/v2/projects?version=2019-11-29"

結果
CreateProjects.json
{
  "project_id" : "xxxxxxxxxxxxxxxxxxxxxxxxxx",
  "type" : "content_mining",
  "name" : "api_project2",
  "collection_count" : 0,
  "default_query_parameters" : {
    "aggregation" : "",
    "count" : 10,
    "sort" : "",
    "return" : [ ],
    "passages" : {
      "enabled" : false,
      "count" : 10,
      "fields" : [ "text", "title" ],
      "characters" : 200,
      "per_document" : true,
      "max_per_document" : 1,
      "find_answers" : false,
      "max_answers_per_passage" : 1
    },
    "highlight" : false,
    "spelling_suggestions" : true,
    "table_results" : {
      "enabled" : false,
      "count" : 10,
      "per_document" : 0
    },
    "suggested_refinements" : {
      "enabled" : false,
      "count" : 10
    }
  }
* Connection #1 to host api.jp-tok.discovery.watson.cloud.ibm.com left intact

GUIの方で見てみると、作成されていることがわかります。

image.png

2.コレクション作成

API DOCによると、以下のパラメータを設定するようです。
image.png

CreateCollection
curl -v -H "Content-Type: application/json" "X-Accept: application/json" -X POST -d '{"name":"api_sample_collection","description":"created by api","language":"ja"}' -u "apikey:xxxxxxxxxxxxxxxxxxx" "https://api.jp-tok.discovery.watson.cloud.ibm.com/instances/xxxxxxxxxxxxxxxxx/v2/projects/xxxxxxxxxxxxxxxxxxxx/collections?version=2019-11-29"

結果

{
  "name" : "api_sample_collection",
  "collection_id" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "description" : "created by api",
  "created" : "2021-05-06T06:49:20.506Z",
  "language" : "ja",
  "enrichments" : [ {
    "enrichment_id" : "701db916-fc83-57ab-0000-000000000002",
    "fields" : [ "text" ]
  } ]
* Connection #0 to host api.jp-tok.discovery.watson.cloud.ibm.com left intact

3.文書追加

API DOCによると、以下のパラメータが必須のようです(パラメータの全量は省略)。

image.png

データについて、今回は以下のような国土交通省から公開されている車の故障データをCSVにしたものを使用します。
image.png

AddDocument
curl -X POST -F "file=@/<ファイルパス>/国交省.csv" -F metadata='{"creater": "xxxxx xxxxxxxxx"}' -u "apikey:xxxxxxxxxxxxxxxxxxxx" "https://api.jp-tok.discovery.watson.cloud.ibm.com/instances/xxxxxxxxxxxxxxxxxxxxx/v2/projects/xxxxxxxxxxxxxxxxxx/collections/xxxxxxxxxxxxxxxxxxxxxxxxxx/documents?version=2019-11-29"


結果

{
  "document_id" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "status" : "pending"
}

4.クエリー

API DOCによると、以下のパラメータが必須のようです(パラメータの全量は省略)。
image.png

Query
curl -X POST -H "Content-Type: application/json" -d "{ \"collection_ids\": [ \"xxxxxxxxxxxxxxxxxxx\", \"xxxxxxxxxxxxxxxxxxxxxx\" ], \"query\": \"申告内容の要約:ABS\" }" -u "apikey:xxxxxxxxxxxxxxxxxxx" "https://api.jp-tok.discovery.watson.cloud.ibm.com/instances/xxxxxxxxxxxxxxxxxxxx/v2/projects/xxxxxxxxxxxxxxxxxxxxx/query?version=2019-11-29"

結果

{
"matching_results": 4,
"retrieval_details": {
"document_retrieval_strategy": "untrained"
},
"results": [{
"document_id": "81dd724e-8644-49cb-9e0c-fcca937664c4_18",
"result_metadata": {
"collection_id": "8f34d65f-a1cf-f3c2-0000-017940701ae2"
},
"受付日": "2016-06-18T00:00:00Z",
"初度登録年月": "2013年3月",
"metadata": {
"creater": "sonoda hiyuko",
"parent_document_id": "81dd724e-8644-49cb-9e0c-fcca937664c4"
},
"番号": 19,
"extracted_metadata": {
"sha1": "DB750194445A28EDD870A7B90E7D12B2BC59B0C1",
"filename": "国交省_part.csv",
"file_type": "csv"
},
"総走行距離": "18,600 Km",
"原動機型式": "P515",
"型式": "EBL-VP56A",
"申告内容の要約": "ステーターコイルの断線により、走行中に突然ABSランプが点灯して、メーターがフリーズし、エンジンが停止して走行不能となった。",
"車名": "スズキ",
"不具合装置": "電気装置",
"性別": "男性",
"住所": "千葉",
"creater": "sonoda hiyuko",
"通称名": "Vストローム650ABS",
"申告方法": "HP",
"発生時期": "2015年5月ころ"
}, {
"document_id": "a408e43c-741a-4b01-94fb-4b8b6709a33a_18",
"result_metadata": {
"collection_id": "f1c6c3bb-2a46-c3aa-0000-01795a5fbc8c"
},
"受付日": "2016-06-18T00:00:00Z",
"初度登録年月": "2013年3月",
"metadata": {
"creater": "sonoda hiyuko",
"parent_document_id": "a408e43c-741a-4b01-94fb-4b8b6709a33a"
},
"番号": 19,
"extracted_metadata": {
"sha1": "DB750194445A28EDD870A7B90E7D12B2BC59B0C1",
"filename": "国交省_part.csv",
"file_type": "csv"
},
"総走行距離": "18,600 Km",
"原動機型式": "P515",
"型式": "EBL-VP56A",
"申告内容の要約": ["ステーターコイルの断線により、走行中に突然ABSランプが点灯して、メーターがフリーズし、エンジンが停止して走行不能となった。"],
"車名": "スズキ",
"不具合装置": "電気装置",
"性別": "男性",
"住所": "千葉",
"creater": "sonoda hiyuko",
"通称名": "Vストローム650ABS",
"申告方法": "HP",
"発生時期": "2015年5月ころ"
}, {
"document_id": "a408e43c-741a-4b01-94fb-4b8b6709a33a_0",
"result_metadata": {
"collection_id": "f1c6c3bb-2a46-c3aa-0000-01795a5fbc8c"
},
"受付日": "2016-06-30T00:00:00Z",
"初度登録年月": "2009年4月",
"metadata": {
"creater": "sonoda hiyuko",
"parent_document_id": "a408e43c-741a-4b01-94fb-4b8b6709a33a"
},
"番号": 1,
"extracted_metadata": {
"sha1": "DB750194445A28EDD870A7B90E7D12B2BC59B0C1",
"filename": "国交省_part.csv",
"file_type": "csv"
},
"総走行距離": "67,000 Km",
"原動機型式": "BWA",
"型式": "ABA-1KAXX",
"申告内容の要約": ["ABSユニットの不良により、警告灯が点灯したり、ステアリングの警告灯が点いてハンドルが重くなる。ギアが自動でローギアになる。エキゾースト警告灯が点灯する。などの症状が次々に出るようになった。"],
"車名": "フォルクスワーゲン",
"不具合装置": "制動装置",
"性別": "男性",
"住所": "福島",
"creater": "sonoda hiyuko",
"通称名": "ゴルフバリアントGTI",
"申告方法": "フリーダイアル",
"発生時期": "1か月くらい前から"
}, {
"document_id": "81dd724e-8644-49cb-9e0c-fcca937664c4_0",
"result_metadata": {
"collection_id": "8f34d65f-a1cf-f3c2-0000-017940701ae2"
},
"受付日": "2016-06-30T00:00:00Z",
"初度登録年月": "2009年4月",
"metadata": {
"creater": "sonoda hiyuko",
"parent_document_id": "81dd724e-8644-49cb-9e0c-fcca937664c4"
},
"番号": 1,
"extracted_metadata": {
"sha1": "DB750194445A28EDD870A7B90E7D12B2BC59B0C1",
"filename": "国交省_part.csv",
"file_type": "csv"
},
"総走行距離": "67,000 Km",
"原動機型式": "BWA",
"型式": "ABA-1KAXX",
"申告内容の要約": "ABSユニットの不良により、警告灯が点灯したり、ステアリングの警告灯が点いてハンドルが重くなる。ギアが自動でローギアになる。エキゾースト警告灯が点灯する。などの症状が次々に出るようになった。",
"車名": "フォルクスワーゲン",
"不具合装置": "制動装置",
"性別": "男性",
"住所": "福島",
"creater": "sonoda hiyuko",
"通称名": "ゴルフバリアントGTI",
"申告方法": "フリーダイアル",
"発生時期": "1か月くらい前から"
}]
}

おわりに

クエリーについては基本的に照会構文はDiscovery Liteを踏襲している(ように見える)ものの、プロジェクト作成が必要だったり、複数のコレクションに同時にクエリーできたりと、少しずつ違うところがある印象でした。使っていって慣れていきたいと思います。

記載の内容は個人の見解であって、組織を代表するものではありません。
また、記載時点(2021/6/15)の内容です。

参考情報

0
0
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
0
0