ML5, sentiment analysis: Uncaught (in promise) TypeError: Cannot read property 'the' of undefined

ML5, sentiment analysis: Uncaught (in promise) TypeError: Cannot read property 'the' of undefined

我正在尝试使用 ML5 sentiment api:

来评估一本书的情绪
const sentiment = ml5.sentiment('movieReviews', modelReady)

// When the model is loaded
function modelReady() {
  // model is ready
  console.log("Model Loaded!");
}

// make the prediction
fetch('../../data/brothers.txt')
  .then(response => response.text())
  .then(text => {
    const prediction = sentiment.predict(text)
    console.log(prediction)
    createDiv('predicted sentiment - ' + prediction)
  })  

function setup() {
}

text 加载正常,我可以将其打印到控制台。使用predict 方法的行上出现以下错误:

如果我用一个单词替换 text,错误仍然存​​在。那么我在这里做错了什么,如何使事情正常进行?

它不起作用,因为在加载模型之前调用了该函数(正如@dwosk所述)。对 predict 的调用必须在 模型准备就绪后 完成。

换句话说,函数必须在A处调用,而不是在B处调用:

function modelReady() {
  console.log("Model Loaded!");
  [A: THIS LOADS WHEN THE MODEL IS READY]
}

[B: THIS LOADS BEFORE THE MODEL IS READY]

这是一个工作示例:https://codepen.io/adelriosantiago/pen/RwaXjez?editors=1011

请注意,为简单起见,fetch 函数被模拟为 return“一只美丽的快乐猫”。