如何使用 Watson NLP 通过 JS 分析关键字?

How can I use Watson NLP to analyze Keywords with 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

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