【发布时间】:2018-01-22 22:19:51
【问题描述】:
我想出了如何为意图添加标签,但不确定如何为复合实体执行此操作。这是适用于非复合实体的代码;
public static void AddLabels(string originalMessage, string intent, List<Label> labels)
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
var uri = "https://westus.api.cognitive.microsoft.com/luis/v1.0/prog/apps/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/example?" + queryString;
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
HttpResponseMessage response;
string body = string.Empty;
string entityLabels = string.Empty;
//get the position of the labels
foreach (var label in labels)
{
entityLabels += label.ToString() + ",";
}
//remove last ","
entityLabels = entityLabels.Remove(entityLabels.Length - 1, 1);
body = string.Format("{{\"ExampleText\": \"{0}\", \"SelectedIntentName\": \"{1}\", \"EntityLabels\": [", originalMessage, intent);
body += entityLabels + "]}";
byte[] byteData = Encoding.UTF8.GetBytes(body);
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
try
{
response = client.PostAsync(uri, content).Result;
}catch(Exception ex)
{
}
}
}
任何帮助将不胜感激。
【问题讨论】:
标签: c# bots azure-language-understanding