2016-04-12 149 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(); 

我的代碼工作正常。感謝您的幫助!