2017-05-03 2 views
0

Je vais ajouter un objet wordInDoc (mot: num) si le mot est dans l'objet vocab [positif], j'essaie avec égal mais échoue. Pourquoi?classifier le texte avec l'objet javascript classifieur bayesien naïf

ceci est mon 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')

Répondre

0

Est-ce une solution que vous cherchez? Parcourez le tableau 'docs' puis vérifiez l'index de correspondance dans 'vocab [_class] [wd]'.

Une autre validation doit être effectuée pour les classes 'classes' inexistantes.

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

merci mec pour la solution –