我使用RESTSharp实现了以下卷曲代码,以查找句子“你叫什么名字?”的语言。
下的“识别语言” 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
答案 0 :(得分:1)
你可以使用Alchemy 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端口
答案 1 :(得分:0)
谢谢!
我找到了答案。
(1)在上面的代码中,我一直在传递{authtoken}而不是我想发送的字符串(下面的示例中的字符串源代码
var requestDet = new RestRequest("?text=" + source, Method.POST);
(2)完成后,我不得不反序列化&#34; responseDet&#34;并过滤第一个值(如下所示)。我曾经使用过Jsonconvert类。
DataSet data = JsonConvert.DeserializeObject<DataSet>(responseDet.Content);
return data.Tables[0].Rows[0][0].ToString();
我的代码工作正常。谢谢你的帮助!