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