Skip to content

A small, no dependencies, Naive Bayes Text Classifier for JavaScript

License

Notifications You must be signed in to change notification settings

rudikershaw/whichx

Repository files navigation

MIT Licence Build status NPM Version

WhichX

WhichX is a Naive Bayes' Classifier written in Javascript for classifying short text descriptions into categories. It is a very small library with a very simple API and no dependencies. To see a working demo you can also go to http://www.rudikershaw.com/articles/whichpet.

Installation

$ npm install whichx

Usage

If you are using Node start by requiring whichx.

var WhichX = require("whichx");

Simply define a new WhichX object. This object represents your dataset, the labels that you want your data classified into, as well as the means to add and classify descriptions.

// Define your whichx object.
var whichpet = new WhichX();

After this you will want to add the labels you wish to give to the types of descriptions you wish to classify.

// Define an array of labels for description types.
var labels = ["cat","dog","fish","horse","bird","reptile"];
// Add your labels to the whichx object.
whichpet.addLabels(labels);
// Add an extra single label to the whichx object.
whichpet.addLabels("pokemon");

Now you can add descriptions to each label. These descriptions, with their labels, act as your training set data.

// Add a description and its label to the data set.
whichpet.addData("pokemon", "loyal and bright yellow with a lightning shaped tail");
// ... Add more here.

With enough data (the more the better), you can provide a description on it's own and ask the classifier which label it thinks it belongs to.

// Which pet am I talking about?
var pet = whichpet.classify("Its yellow and shoots lightning");
console.log("It's a " + pet + "!");

That's it. Enjoy.

For questions about the API or additional functionality, please see the FAQs.