使用对象 javascript 朴素贝叶斯分类器对文本进行分类

classify text with object javascript naive bayes classifier

如果单词在对象 vocab [肯定] 中,我将添加一个 wordInDoc 对象(单词:num),我尝试等于但失败了。为什么?

这是我的代码

var nbayes = function(_class, docs) {
  var vocab = {
    positif: {
      wd: ['baik', 'pintar']
    },
    negatif: {
      wd: ['buruk', 'jelek']
    }
  }
  var wordInDoc = {}
  var sumDocs = 0;
  docs = docs.split(' ')
  var wd = 'wd'
  for (var word of docs) {
    if (word in vocab[_class][wd]) {
      var delta = 1
      wordInDoc[word] = 0
      wordInDoc[word] += delta
      sumDocs++
    }
    console.log(wordInDoc, sumDocs)
  }

};

nbayes('positif', 'baik dan rajin')
nbayes('negatif', 'nakal dan bodoh')

这是您正在寻找的解决方案吗?

遍历数组 'docs' 然后检查 'vocab[_class][wd]' 中匹配的索引。

应该对不存在的 类'_class' 进行一些其他验证。

var nbayes = function(_class, docs) {
  var wordInDoc = {};
  var sumDocs = 0;
  var wd = 'wd';
  var word;
  var vocab = {
    positif: {
      wd: ['baik', 'pintar']
    },
    negatif: {
      wd: ['buruk', 'jelek']
    }
  }
  
  docs = docs.split(' ');
  
  for (var i = 0;i < docs.length; i++) {
    word = docs[i];
    if (vocab[_class] && vocab[_class][wd].indexOf(word) !== -1) {
      var delta = 1;
      wordInDoc[word] = 0;
      wordInDoc[word] += delta;
      sumDocs++;
    }
    console.log(wordInDoc, sumDocs)
  }

};

nbayes('positif', 'baik dan rajin')
nbayes('negatif', 'nakal dan bodoh')