2016-04-12 51 views
1

我已经使用RESTSharp实现了下面的卷发代码来找到句子“你叫什么名字?”的语言。沃森语言识别

我跟着“标识语言”下:http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/language-translation/api/v2/#identify

 string source = "What is your name?"; 
     string credentials; 
     string auth = string.Format("{0}:{1}", tuid, tpwd); 
     string auth64 = Convert.ToBase64String(Encoding.ASCII.GetBytes(auth)); 
     credentials = string.Format("{0} {1}", "Basic", auth64); 

     var langDet = new RestClient(detURL); 
     var requestDet = new RestRequest("?text={authToken}",Method.POST); 
     requestDet.Credentials = new NetworkCredential(tuid, tpwd); 
     requestDet.AddParameter("text", source, ParameterType.UrlSegment); 
     IRestResponse responseDet = langDet.Execute(requestDet); 

然而,当这个代码被执行,我得到的语言和置信度的列表,而我仍然不知道如何准确地指定语言上面的句子去。请帮我,我错了。上述

我detUrl变量是:https://gateway.watsonplatform.net/language-translation/api/v2/identify

回答

1

你可以得到你想要使用炼金术API,它也可在Bluemix什么。下面是使用Java +沃森SDK

AlchemyLanguage service = new AlchemyLanguage(); 
    service.setApiKey("XXXXXXXXX"); 

    Map<String,Object> params = new HashMap<String, Object>(); 
    params.put(AlchemyLanguage.TEXT, "What is your name?"); 

    Language language = service.getLanguage(params); 
    System.out.println(language); 

我用这个Java SDK的上面的例子,但这里有一个.NET端口,它

https://github.com/dennyboy/WatsonCSharp

0

谢谢!

我找到了答案。

(1)在上述我的代码,我已经经过{的authToken}代替我本来想例如在发送(字符串源下面

var requestDet = new RestRequest("?text=" + source, Method.POST); 

(2)完成后,我有串反序列化从“responseDet”输出和过滤的第一个值(如下)。我用了Jsonconvert类。

DataSet data = JsonConvert.DeserializeObject<DataSet>(responseDet.Content); 
      return data.Tables[0].Rows[0][0].ToString(); 

我的代码工作正常。感谢您的帮助!