Naive Bayes classifier
This is a Naive Bayes classifier implementation written in JavaScript.
I have used the existing code by Miguel https://github.com/miguelmota/bayes-classifier.git and modified it to work with uni,bi and trigrams when calculating the score. I have also expanded the API to be able to give percentage directly for a query.
Algorithms used - algorithms from the appratus and natural modules, and also the Porter stemmer algorithm. All credit goes to them.
Demo
Refer to the demo by Miguel here. https://lab.miguelmota.com/bayes-classifier
Install
npm install bayes-classifier-multigram
bower install bayes-classifier-multigram
Usage
var BayesClassifier = var classifier = var positiveDocuments = `I love tacos.` `Dude, that burrito was epic!` `Holy cow, these nachos are so good and tasty.` `I am drooling over the awesome bean and cheese quesadillas.` var negativeDocuments = `Gross, worst taco ever.` `The buritos gave me horrible diarrhea.` `I'm going to puke if I eat another bad nacho.` `I'd rather die than eat those nasty enchiladas.` classifierclassifier classifier console // "positive"console // "negative"console // "negative"console // "positive" console/* [ { label: 'positive', value: 0.22222222222222224 }, { label: 'negative', value: 0.11111111111111112 } ]*/console; label: 'positive' value: '66.67%' label: 'negative' value: '33.33%'
Restoring a classifier to avoid re-training data
// Storing classifiervar storeFile = `/store.json`fs // ... // Restoring classifiervar classifier = var storedClassifier = classifier
API
classifier.addDocument(doc, class)
classifier.addDocuments([docs], class)
classifier.train()
classifier.classify(doc)
classifier.getClassifications(doc)
classifier.getClassificationsAsPercent(doc)
classifier.restore(classifier)
Test
npm test
License
MIT