NAME
AI::Categorizer::Learner::Boolean - Abstract class for boolean categorizers
SYNOPSIS
package AI::Categorizer::Learner::SomethingNew;
use AI::Categorizer::Learner::Boolean;
@ISA = qw(AI::Categorizer::Learner::Boolean);
sub create_boolean_model {
my ($self, $positives, $negatives, $category) = @_;
...
return $something_helpful;
}
sub get_boolean_score {
my ($self, $document, $something_helpful) = @_;
...
return $score;
}
DESCRIPTION
This is an abstract class which turns boolean categorizers (categorizers based on algorithms that can just provide yes/no categorization decisions for a single document and single category) into multi-valued categorizers. For instance, the decision tree categorizer AI::Categorizer::Learner::DecisionTree
maintains a decision tree for each category, then uses it to decide whether a certain document belongs to the given category.
Any class that inherits from this class should implement the following methods:
create_boolean_model()
Used during training to create a category-specific model. The type of model you create is up to you - it should be returned as a scalar. Whatever you return will be available to you in the get_boolean_score()
method, so put any information you'll need during categorization in this scalar.
In addition to $self
, this method will be passed three arguments. The first argument is a reference to an array of positive examples, i.e. documents that belong to the given category. The next argument is a reference to an array of negative examples, i.e. documents that do not belong to the given category. The final argument is the Category object for the given category.
get_boolean_score()
Used during categorization to assign a score for a single document relative to a single category. The score should be between 0 and 1, with a score greater than 0.5 indicating membership in the category.
In addition to $self
, this method will be passed two arguments. The first argument is the document to be categorized. The second argument is the value returned by create_boolean_model()
for this category.
AUTHOR
Ken Williams, <ken@mathforum.org>
SEE ALSO
AI::Categorizer