bayes-classifier-multigram

0.0.6 • Public • Published

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 = require('bayes-classifier')
var classifier = new BayesClassifier()
 
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.`
]
 
classifier.addDocuments(positiveDocuments, `positive`)
classifier.addDocuments(negativeDocuments, `negative`)
 
classifier.train()
 
console.log(classifier.classify(`I heard the mexican restaurant is great!`)) // "positive"
console.log(classifier.classify(`I don't want to eat there again.`)) // "negative"
console.log(classifier.classify(`The torta is epicly bad.`)) // "negative"
console.log(classifier.classify(`The torta is tasty.`)) // "positive"
 
console.log(classifier.getClassifications(`Burritos are the meaning of life.`))
/*
 [ { label: 'positive', value: 0.22222222222222224 },
   { label: 'negative', value: 0.11111111111111112 } ]
*/
console.log(classifier.getClassificationsAsPercent('Burritos are the meaning of life.'));
[ { label: 'positive', value: '66.67%' },
  { label: 'negative', value: '33.33%' } ]

Restoring a classifier to avoid re-training data

// Storing classifier
var storeFile = `${__dirname}/store.json`
fs.writeFileSync(storeFile, JSON.stringify(classifier))
 
// ...
 
// Restoring classifier
var classifier = new BayesClassifier()
var storedClassifier = require(storeFile)
classifier.restore(storedClassifier)

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

Readme

Keywords

Package Sidebar

Install

npm i bayes-classifier-multigram

Weekly Downloads

0

Version

0.0.6

License

MIT

Unpacked Size

208 kB

Total Files

19

Last publish

Collaborators

  • naveenjafer