そのため、現在 Azure Machine Learning の実験に取り組んでいます。モデルを作成し、Web サービスとして投稿することができました。Web サービスを作成したときに生成された API ドキュメントで提供されている C# のサンプル リクエスト/レスポンス コードを使用して、レスポンスを取得することもできました。
私の問題は、Web サービスによって提供される応答に、C# アプリケーションに必要な唯一のものである予測スコアを含む多くの情報 (長い文字列の情報) が含まれていることです。頭に浮かぶ唯一のことは、必要な情報を抽出するために文字列操作メソッドを使用することです。しかし、それよりも良い方法があると思います。HTTP リクエスト/レスポンスは初めてなので、詳しい回答と説明をお願いします。
これが私のコードです:
HttpResponseMessage response = await client.PostAsJsonAsync("", scoreRequest);
if (response.IsSuccessStatusCode)
{
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine("Result: {0}", result);
}
else
{
Console.WriteLine(string.Format("The request failed with status code: {0}", response.StatusCode));
// Print the headers - they include the requert ID and the timestamp, which are useful for debugging the failure
Console.WriteLine(response.Headers.ToString());
string responseContent = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseContent);
}
応答メッセージは次のとおりです。
{"Results":{"output1":{"type":"table","value":{"ColumnNames":["clump_thickness","size_uniformity","shape_uniformity","marginal_adhesion","epithelial_size","bare_nucleoli","bland_chromatin","normal_nucleoli","mitoses","Scored Labels","Scored Probabilities"],"ColumnTypes":["Int32","Int32","Int32","Int32","Int32","Nullable`1","Int32","Int32","Int32","Double","Double"],"Values":[["10","10","4","8","1","8","3","10","1","1","0.979712069034576"],["10","10","4","8","1","8","3","10","1","1","0.979712069034576"]]}}}}
"Values":[[...]] 内の値のみが必要です。この場合、9 番目のインデックスまたは "1" です。