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, <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.