NAME Data::CosineSimilarity - Compute the Cosine Similarity SYNOPSIS $cs = Data::CosineSimilarity->new; $cs->add( label1 => { feature1 => 3, feature2 => 1, feature3 => 10 } ); $cs->add( label2 => ... ); $cs->add( label3 => ... ); # computes the cosine similarity my $r = $cs->similarity( 'label1', 'label2' ); # the result object my $cosine = $r->cosine; my $radian = $r->radian; my $degree = $r->degree; my ($label1, $label2) = $r->labels; # computes all the cosine similarity between 'label1' and the others. my @all = $cs->all_for_label('label1'); # computes all, and returns the best my ($best_label, $r) = $cs->best_for_label('label2'); # computes all, and returns the worst my ($worst_label, $r) = $cs->worst_for_label('label2'); DESCRIPTION Compute the cosine similarities between a set of vectors. $class->new( %opts ) If all the feature vectors are normed then the computation of the cosine becomes just the dot product of the vectors. In this case, specify the option normed => 1, the performance will be greatly improved. $self->add( label => $features ) $self->similarity( $label1, $label2 ) $self->all_for_label( $label ) $self->best_for_label( $label ) $self->worst_for_label( $label ) AUTHOR Antoine Imbert, "" LICENSE AND COPYRIGHT This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.