2016-04-12 14 views
1

Ich hatte den folgenden Curl-Code mit RESTSharp implementiert, um die Sprache des Satzes "Wie heißt du?" Zu finden.Watson Sprachidentifikation

Ich folgte die „Sprache identifizieren“ unter: 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); 

Wenn jedoch dieser Code mir eine Liste der Sprachen und Konfidenzniveau erhalten ausgeführt, während ich bin immer noch nicht sicher, wie genau angeben, welche Sprache des der obige Satz geht zu. Bitte hilf mir, wo ich falsch liege.

Meine detUrl Variable oben ist: https://gateway.watsonplatform.net/language-translation/api/v2/identify

Antwort

1

können Sie bekommen, was Sie wollen die Alchemy-API, die auch in Bluemix zur Verfügung steht. Hier ist ein Beispiel unter Verwendung von Java + Watson 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); 

Ich benutze dieses Java SDK oben, aber es gibt einen .NET-Port für sie hier

https://github.com/dennyboy/WatsonCSharp

0

Vielen Dank!

Ich fand die Antwort.

(1) In meinem obigen Code, ich habe die {authtoken} worden vorbei anstelle des Strings I (string Quelle in Beispiel unten

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

(2) Ist das erledigt senden wollte, hatte ich die Ausgabe von „responseDet“ zu deserialisiert und den ersten Wert (wie unten) filtern. ich benutzt hatte Jsonconvert Klasse.

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

Mein Code funktioniert gut. Vielen Dank für Ihre Hilfe!

Verwandte Themen