kbariotis / documer
Bayes algorithm implementation in PHP for auto document classification.
Requires (Dev)
- phpspec/phpspec: ~2.0
This package is not auto-updated.
Last update: 2024-10-26 16:43:57 UTC
README
Bayes algorithm implementation in PHP for auto document classification.
Concept
every document has key words e.g. Margaret Thatcher
every document has a label e.g. Politics
Suppose, that in every document there are key words all starting with an uppercase letter. We store these words in our DB end every time we need to guess a document against a particular label, we use Bayes algorithm.
Let's clear that out:
Training:
First, we tokenize the document and keep only our key words (All words starting with an uppercase letter) in an array. We store that array in our DB.
Guessing:
This is very simple. Again, we parse the document we want to be classified and create an array with the key words. Here is the pseudo code:
for every label in DB
for every key word in document
P(label/word) = P(word/label)P(label) / ( P(word/label)P(label) + (1 - P(word/label))(1 - P(label)) )
Usage
Install through composer
"require": { "kbariotis/documer": "dev-master" },
Instantiate
Pass a Storage Adapter object to the Documer Constructor.
$documer = new Documer\Documer(new \Documer\Storage\Memory());
Train
$documer->train('politics', 'This is text about Politics and more'); $documer->train('philosophy', 'Socrates is an ancent Greek philosopher'); $documer->train('athletic', 'Have no idea about athletics. Sorry.'); $documer->train('athletic', 'Not a clue.'); $documer->train('athletic', 'It is just not my thing.');
Guess
$scores = $documer->guess('What do we know about Socrates?');
$scores
will hold an array with all labels of your system and the posibbility which the document will belong to
each label.
Storage Adapters Implement Documer\Storage\Adapter to create your own Storage Adapter.