All Projects → niiknow → bayes

niiknow / bayes

Licence: MIT license
naive bayes in php

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to bayes

GaussianNB
Gaussian Naive Bayes (GaussianNB) classifier
Stars: ✭ 17 (-72.13%)
Mutual labels:  naive-bayes, naive-bayes-classifier, naive-bayes-algorithm
sentiment-analysis-using-python
Large Data Analysis Course Project
Stars: ✭ 23 (-62.3%)
Mutual labels:  classifier, naive-bayes, naive-bayes-classifier
Intention-Mining-
Intention Mining in Social Networking. It Mines Emotions and polarity for the given keyword . For the keyword it searchers the twitter for the comments and analyzes the results for various events such as Election results, Sports prediction Movie ratings, Breaking news events such as demonetisation and many more. Bayes , Maximum Entropy and Hidde…
Stars: ✭ 19 (-68.85%)
Mutual labels:  machine-learning-algorithms, bayes
Heart disease prediction
Heart Disease prediction using 5 algorithms
Stars: ✭ 43 (-29.51%)
Mutual labels:  naive-bayes, machine-learning-algorithms
20-newsgroups text-classification
"20 newsgroups" dataset - Text Classification using Multinomial Naive Bayes in Python.
Stars: ✭ 41 (-32.79%)
Mutual labels:  naive-bayes, naive-bayes-classifier
Naivebayes
📊 Naive Bayes classifier for JavaScript
Stars: ✭ 127 (+108.2%)
Mutual labels:  classifier, machine-learning-algorithms
Bayes
Naive Bayes Classifier in Swift for Mac and iOS
Stars: ✭ 30 (-50.82%)
Mutual labels:  naive-bayes-classifier, bayes
100 Days Of Ml Code
100 Days of ML Coding
Stars: ✭ 33,641 (+55049.18%)
Mutual labels:  machine-learning-algorithms, naive-bayes-classifier
classy
Super simple text classifier using Naive Bayes. Plug-and-play, no dependencies
Stars: ✭ 12 (-80.33%)
Mutual labels:  classifier, bayes
Nepali-News-Classifier
Text Classification of Nepali Language Document. This Mini Project was done for the partial fulfillment of NLP Course : COMP 473.
Stars: ✭ 13 (-78.69%)
Mutual labels:  classifier, naive-bayes-classifier
lapis-bayes
Naive Bayes classifier for use in Lua
Stars: ✭ 26 (-57.38%)
Mutual labels:  classifier, naive-bayes-classifier
naive-bayes-classifier
Implementing Naive Bayes Classification algorithm into PHP to classify given text as ham or spam. This application uses MySql as database.
Stars: ✭ 21 (-65.57%)
Mutual labels:  classifier, naive-bayes-classifier
chatto
Chatto is a minimal chatbot framework in Go.
Stars: ✭ 98 (+60.66%)
Mutual labels:  classifier, naive-bayes-classifier
Edgeml
This repository provides code for machine learning algorithms for edge devices developed at Microsoft Research India.
Stars: ✭ 1,093 (+1691.8%)
Mutual labels:  classifier, machine-learning-algorithms
Errant
ERRor ANnotation Toolkit: Automatically extract and classify grammatical errors in parallel original and corrected sentences.
Stars: ✭ 208 (+240.98%)
Mutual labels:  classifier
Awesome Decision Tree Papers
A collection of research papers on decision, classification and regression trees with implementations.
Stars: ✭ 1,908 (+3027.87%)
Mutual labels:  classifier
Digit Recognizer
A Machine Learning classifier for recognizing the digits for humans.
Stars: ✭ 126 (+106.56%)
Mutual labels:  classifier
Machine-Learning-Algorithms
All Machine Learning Algorithms
Stars: ✭ 24 (-60.66%)
Mutual labels:  machine-learning-algorithms
Licenseclassifier
A License Classifier
Stars: ✭ 180 (+195.08%)
Mutual labels:  classifier
Keras transfer cifar10
Object classification with CIFAR-10 using transfer learning
Stars: ✭ 120 (+96.72%)
Mutual labels:  classifier

bayes: A Naive-Bayes classifier for PHP

Build Status

bayes takes a document (piece of text), and tells you what category that document belongs to.

This library was ported from a nodejs lib @ https://github.com/ttezel/bayes

  • Proven and popular classifier in nodejs - https://www.npmjs.com/package/bayes
  • We kept the json serialization signature so you can simply use the learned/trained json output from both PHP and nodejs library.

What can I use this for?

You can use this for categorizing any text content into any arbitrary set of categories. For example:

  • is an email spam, or not spam ?
  • is a news article about technology, politics, or sports ?
  • is a piece of text expressing positive emotions, or negative emotions?

Installing

composer require niiknow/bayes

Usage

$classifier = new \Niiknow\Bayes();

// teach it positive phrases

$classifier->learn('amazing, awesome movie!! Yeah!! Oh boy.', 'positive');
$classifier->learn('Sweet, this is incredibly, amazing, perfect, great!!', 'positive');

// teach it a negative phrase

$classifier->learn('terrible, shitty thing. Damn. Sucks!!', 'negative');

// now ask it to categorize a document it has never seen before

$classifier->categorize('awesome, cool, amazing!! Yay.');
// => 'positive'

// serialize the classifier's state as a JSON string.
$stateJson = $classifier->toJson();

// load the classifier back from its JSON representation.
$classifier->fromJson($stateJson);

API

$classifier = new \Niiknow\Bayes([options])

Returns an instance of a Naive-Bayes Classifier.

Pass in an optional options object to configure the instance. If you specify a tokenizer function in options, it will be used as the instance's tokenizer.

$classifier->learn(text, category)

Teach your classifier what category the text belongs to. The more you teach your classifier, the more reliable it becomes. It will use what it has learned to identify new documents that it hasn't seen before.

$classifier->categorize(text)

Returns the category it thinks text belongs to. Its judgement is based on what you have taught it with .learn().

$classifier->probabilities(text)

Extract the probabilities for each known category.

$classifier->toJson()

Returns the JSON representation of a classifier.

$classifier->fromJson(jsonStr)

Returns a classifier instance from the JSON representation. Use this with the JSON representation obtained from $classifier->toJson()

Stopwords

You can pass in your own tokenizer function in the constructor. Example:

// array containing stopwords
$stopwords = array("der", "die", "das", "the");

// escape the stopword array and implode with pipe
$s = '~^\W*('.implode("|", array_map("preg_quote", $stopwords)).')\W+\b|\b\W+(?1)\W*$~i';

$options['tokenizer'] = function($text) use ($s) {
            // convert everything to lowercase
            $text = mb_strtolower($text);

            // remove stop words
            $text = preg_replace($s, '', $text);

            // split the words
            preg_match_all('/[[:alpha:]]+/u', $text, $matches);

            // first match list of words
            return $matches[0];
        };

$classifier = new \niiknow\Bayes($options);

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].