如何使用 Watson NLP 分析带有 JS 的关键字?

问题描述

我正在尝试使用 Watson NLP 和 JS 创建关键字分析。

我尝试了以下代码行,但结果显示 ReferrenceError{},我不知道如何使其工作..

var keywords=response.result.keywords;
  print(keywords);
  createElement("h3","Main keywords of this synopsis");
  
  nbkeywords = 3;
  createP("Keywords in this synopsis are:");
  createP(keywords[i].text);
 }

解决方法

这是来自 Watson NLU API (reference) 的关键字功能的 JSON 响应示例:

{
  "usage": {
    "text_units": 1,"text_characters": 1536,"features": 1
  },"keywords": [
    {
      "text": "curated online courses","sentiment": {
        "score": 0.792454
      },"relevance": 0.864624,"emotions": {
        "sadness": 0.188625,"joy": 0.522781,"fear": 0.12012,"disgust": 0.103212,"anger": 0.106669
      }
    },{
      "text": "free virtual server","sentiment": {
        "score": 0.664726
      },"relevance": 0.864593,"emotions": {
        "sadness": 0.265225,"joy": 0.532354,"fear": 0.07773,"disgust": 0.090112,"anger": 0.102242
      }
    }
  ],"language": "en","retrieved_url": "https://www.ibm.com/us-en/"
}

表示 JSON 响应中的“关键字”键是一个包含其他 JSON 对象的数组。要打印您需要循环此数组的所有关键字,如下所示,使用“for”语句:

var keywords = response.result.keywords;
...
createElement("h3","Main keywords of this synopsis");
createP("Keywords in this synopsis are:");
var numberOfKeywords = keywords.length;
for (var i = 0; i < numberOfKeywords; i++) {
    createP(keywords[i].text);
}

在 Watson NLU 官方文档中,有一些 Javascript 示例也可以帮助您理解服务 API。见https://cloud.ibm.com/apidocs/natural-language-understanding?code=node#keywords

希望这个回答对您有所帮助。