Acme::Affinity - Compute the affinity between two people
version 0.0114
use Acme::Affinity; # Please see the documentation for the contents of these values my %arguments = (questions => [], importance => {}, me => [], you => []); my $affinity = Acme::Affinity->new(%arguments); my $score = $affinity->score;
An Acme::Affinity object computes the relationship affinity between two people based on a common list of questions, answers and their weighted importance.
Acme::Affinity
This is a list of hash references with question keys and answer array references.
Example:
[ { 'how messy are you' => [ 'very messy', 'average', 'very organized' ] }, { 'do you like to be the center of attention' => [ 'yes', 'no' ] }, ]
This is a hash reference with importance level keys and weight values.
Default:
{ 'irrelevant' => 0, 'a little important' => 1, 'somewhat important' => 10, 'very important' => 50, 'mandatory' => 250, }
This is an array reference triple of question responses, desired responses and importance levels of person A for each of the given questions.
# Person A Person B Importance [ [ 'very organized', 'very organized', 'very important' ], [ 'no', 'no', 'a little important' ], ]
So person A ("me") considers him or herself to be "very organized", desires a "very organized" person, and this is "very important" to them.
Person A also does not need to be the "center of attention", desires the same type of person, but this is only "a little important."
This is an array reference triple of question responses, desired responses and importance levels of person B for each of the given questions.
# Person B Person A Importance [ [ 'very organized', 'average', 'a little important' ], [ 'yes', 'no', 'somewhat important' ], ]
Person B considers him or herself to be "very organized", but only desires someone who is "average", and this is only "a little important" to them.
Person B likes to be the "center of attention", desires someone who does not, and this is "somewhat important."
my $affinity = Acme::Affinity->new( questions => \@questions, importance => \%importance, me => \@me, you => \@you, );
Create a new Acme::Affinity object.
my $score = $affinity->score;
Compute the affinity score for the two given people.
The eg/* and t/01-methods.t programs in this distribution.
Moo
Math::BigRat
https://www.youtube.com/watch?v=m9PiPlRuy6E
Gene Boggs <gene@cpan.org>
This software is copyright (c) 2022 by Gene Boggs.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Acme::Affinity, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Acme::Affinity
CPAN shell
perl -MCPAN -e shell install Acme::Affinity
For more information on module installation, please visit the detailed CPAN module installation guide.