我使用RESTSharp实现了以下curl代码来查找句子“你的名字是什么?”的语言。
我遵循了下面的“识别语言”: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
发布于 2016-04-13 09:55:43
您可以使用Alchemy API获得您想要的东西,该API在Bluemix中也可用。下面是一个使用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);
我在上面使用这个Java SDK,但是这里有一个用于它的.NET端口
发布于 2016-05-08 03:24:32
谢谢!
我找到了答案。
(1)在上面的代码中,我一直在传递{authtoken},而不是我想要发送的字符串(下面示例中的字符串source
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();
我的代码运行得很好。感谢您的帮助!
https://stackoverflow.com/questions/36580654
复制相似问题