使用对象javascript naive bayes分类器对文本进行分类

时间:2017-05-03 11:07:51

标签: javascript text-classification naivebayes

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

这是我的代码

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')

1 个答案:

答案 0 :(得分:1)

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

循环播放数组' docs'然后在'词汇[_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')
&#13;
&#13;
&#13;