2017-05-03 5 views
0

Ich werde ein WordInDoc-Objekt (Wort: num) hinzufügen, wenn das Wort im Objekt vocab [positiv] ist, versuche ich mit gleich, aber scheitern. Warum?klassifizieren Text mit Objekt JavaScript naiven Bayes Klassifizierer

dies ist mein Code

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

Antwort

0

Ist dies eine Lösung, die Sie gesucht haben?

Durchlaufen Sie das Array 'docs' und suchen Sie nach dem Übereinstimmungsindex in 'vocab [_class] [wd]'.

Eine andere Validierung sollte für nicht existierende class'_class 'durchgeführt werden.

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

+0

dank Geck für Lösung –

Verwandte Themen