Acme::Affinity - Compute the affinity between two people
version 0.0110
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 themself to be very organized, desires a very organized person, and this is a 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 themself 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) 2020 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.