The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Algorithm::ContextVector - Simple implementation based on Data::CosineSimilarity

SYNOPSIS

 my $cv = Algorithm::ContextVector->new( top => 300 );

 $cs->add_instance( label => 'label1', attributes => { feature1 => 3, feature2 => 1, feature3 => 10 } );
 $cs->add_instance( label => [ 'label2', 'label3' ], attributes => { ... } );
 $cs->add_instance( label => ..., attributes => ... );
 ...

 $cv->train;

 my $results = $cv->predict( attributes => { ... } );

DESCRIPTION

Simple implementation based on Data::CosineSimilarity

$class->new( top => ... )

During the training, keeps the $top most heavy weighted features. Keeps the complete feature set if omitted.

$class->new_from_file( $filename )

Returns the instance of Algorithm::ContextVector stored in $filename.

$self->save_to_file( $filename )

Save the $self to $filename using Storable.

$self->add_instance( label => [ ... ], attributes => { ... } )

$self->train

Keeps the best features (top N) and norms the vectors.

$self->predict( attributes => { ... } )

Returns a hashref with the labels as the keys and the cosines as the values.

AUTHOR

Antoine Imbert, <antoine.imbert at gmail.com>

LICENSE AND COPYRIGHT

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.