沃森语言识别

时间:2016-04-12 17:53:56

标签: ibm-watson

我使用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

2 个答案:

答案 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端口

https://github.com/dennyboy/WatsonCSharp

答案 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();

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