SlideShare a Scribd company logo
2    :
    id:ninjinkun
•
•
    ‣
    ‣

•
•
•       vs
1.
     ‣   ×

2.


     ‣   ×

3.       ×

4.       ×   1, 2
:

•
    ‣
    {
            'Lisa Rose'        => {
                'Lady in the Water'    =>   2.5,
                'Snakes on a Plane'    =>   3.5,
                'Just My Luck'         =>   3.0,
                'Superman Returns'     =>   3.5,
                'You, Me and Dupree'   =>   2.5,
                'The Night Listener'   =>   3.0,
            },
            'Toby'             => {
                'Snakes on a Plane'    => 4.5,
                'You, Me and Dupree'   => 1.0,
                'Superman Returns'     => 4.0,
            },
            'Claudia Puig'     => {
                'Snakes on a Plane'    => 3.5,
                'Just My Luck'         => 3.0,
                'The Night Listener'   => 4.5,
Toby         Rose         Puig
•       Snakes
         5


        4


        3

    ‣   2


        1


        0                                    Dupree
            0    0.8    1.6   2.4    3.2    4
•

    ‣



    ‣



•
(cont.)

•                 Gene Seymour
                       5


    ‣                  4

                       3

                       2

                       1
                                                            Mick
                       0
                                                            Lasalle
                           0    0.8   1.6   2.4   3.2   4

                    Lisa Rose
                       4.0

                       3.2

                       2.4

                       1.6

                       0.8

                           0                                Jack
                                                            Matthews
•

    ‣



                        Night     xNight   Lady     xLady
     Rose        0.99    3.0    2.97       2.5    2.475
    Seymour      0.38    3.0    1.14       3.0    1.14
        Pug      0.89    4.5    4.005
                                8.115             3.615
    Sim. Sum                    2.260             1.370
     /Sim. Sum                  3.591             2.639
•

    ‣



                        Night     xNight   Lady     xLady
     Rose        0.99    3.0    2.97       2.5    2.475
    Seymour      0.38    3.0    1.14       3.0    1.14
        Pug      0.89    4.5    4.005
                                8.115             3.615
    Sim. Sum                    2.260             1.370
     /Sim. Sum                  3.591             2.639
•

    ‣



                        Night     xNight   Lady     xLady
     Rose        0.99    3.0    2.97       2.5    2.475
    Seymour      0.38    3.0    1.14       3.0    1.14
        Pug      0.89    4.5    4.005
                                8.115             3.615
    Sim. Sum                    2.260             1.370
     /Sim. Sum                  3.591             2.639
sub get_recommendations {
    my ($prefs, $person, $similarity) = @_;
    $similarity ||= &sim_pearson;

    my (%totals, %simSuns);
    for my $other (keys %$prefs) {
        ##
        next if $other eq $person;
        my $sim = $similarity->($prefs, $person, $other);

        ## 0
        next if $sim <= 0;
        for my $item (keys %{$prefs->{$other}}) {
            ##
            if ( !exists $prefs->{$person}{$item}
                     or $prefs->{$person}{$item} == 0 ) {
                $totals{$item} += $prefs->{$other}{$item} * $sim;
                $simSuns{$item} += $sim;
            }
        }
    }
    return sort {$b->[1] <=> $a->[1] }
        map { [ $_, $totals{$_} / $simSuns{$_} ] } keys %totals;
}
×

•
    {
        'Lady in the Water' => {
            'Lisa Rose'        =>   2.5,
            'Gene Seymour'     =>   3.0,
            'Michael Phillips' =>   2.5,
        },
        'You, Me and Dupree' => {
            'Lisa Rose'        =>   2.5,
            'Toby'             =>   1.0,
            },
        },
•       del.icio.us   API
    ‣
    ‣


    ‣                       1
            0
•
•
    ‣


                   Night     xNight   Lady      xLady
    Snakes   4.5   0.182   0.819      0.222   0.999
Superman     4     0.103   0.412      0.091   0.364
    Dupree   1     0.148   0.148       0.4     0.4
                   0.433   1.379      0.713   1.763
                           3.185              2.473
•
•
    ‣


                   Night     xNight   Lady      xLady
    Snakes   4.5   0.182   0.819      0.222   0.999
Superman     4     0.103   0.412      0.091   0.364
    Dupree   1     0.148   0.148       0.4     0.4
                   0.433   1.379      0.713   1.763
                           3.185              2.473
•
•
    ‣


                   Night     xNight   Lady      xLady
    Snakes   4.5   0.182   0.819      0.222   0.999
Superman     4     0.103   0.412      0.091   0.364
    Dupree   1     0.148   0.148       0.4     0.4
                   0.433   1.379      0.713   1.763
                           3.185              2.473
(cont.)

•
    ‣
    ‣



•
    ‣

•
    ‣
vs


    •
             •
    •

    •        •
             •




•
•
•
    ‣
    ‣



•
    ‣
    ‣

        •
(cont.)

•
    ‣

•
    ‣
    ‣

More Related Content

集合知プログラミング第2章復習

  • 1. 2 : id:ninjinkun
  • 2. • • ‣ ‣ • • • vs
  • 3. 1. ‣ × 2. ‣ × 3. × 4. × 1, 2
  • 4. : • ‣ { 'Lisa Rose' => { 'Lady in the Water' => 2.5, 'Snakes on a Plane' => 3.5, 'Just My Luck' => 3.0, 'Superman Returns' => 3.5, 'You, Me and Dupree' => 2.5, 'The Night Listener' => 3.0, }, 'Toby' => { 'Snakes on a Plane' => 4.5, 'You, Me and Dupree' => 1.0, 'Superman Returns' => 4.0, }, 'Claudia Puig' => { 'Snakes on a Plane' => 3.5, 'Just My Luck' => 3.0, 'The Night Listener' => 4.5,
  • 5. Toby Rose Puig • Snakes 5 4 3 ‣ 2 1 0 Dupree 0 0.8 1.6 2.4 3.2 4
  • 6. ‣ ‣ •
  • 7. (cont.) • Gene Seymour 5 ‣ 4 3 2 1 Mick 0 Lasalle 0 0.8 1.6 2.4 3.2 4 Lisa Rose 4.0 3.2 2.4 1.6 0.8 0 Jack Matthews
  • 8. ‣ Night xNight Lady xLady Rose 0.99 3.0 2.97 2.5 2.475 Seymour 0.38 3.0 1.14 3.0 1.14 Pug 0.89 4.5 4.005 8.115 3.615 Sim. Sum 2.260 1.370 /Sim. Sum 3.591 2.639
  • 9. ‣ Night xNight Lady xLady Rose 0.99 3.0 2.97 2.5 2.475 Seymour 0.38 3.0 1.14 3.0 1.14 Pug 0.89 4.5 4.005 8.115 3.615 Sim. Sum 2.260 1.370 /Sim. Sum 3.591 2.639
  • 10. ‣ Night xNight Lady xLady Rose 0.99 3.0 2.97 2.5 2.475 Seymour 0.38 3.0 1.14 3.0 1.14 Pug 0.89 4.5 4.005 8.115 3.615 Sim. Sum 2.260 1.370 /Sim. Sum 3.591 2.639
  • 11. sub get_recommendations { my ($prefs, $person, $similarity) = @_; $similarity ||= &sim_pearson; my (%totals, %simSuns); for my $other (keys %$prefs) { ## next if $other eq $person; my $sim = $similarity->($prefs, $person, $other); ## 0 next if $sim <= 0; for my $item (keys %{$prefs->{$other}}) { ## if ( !exists $prefs->{$person}{$item} or $prefs->{$person}{$item} == 0 ) { $totals{$item} += $prefs->{$other}{$item} * $sim; $simSuns{$item} += $sim; } } } return sort {$b->[1] <=> $a->[1] } map { [ $_, $totals{$_} / $simSuns{$_} ] } keys %totals; }
  • 12. × • { 'Lady in the Water' => { 'Lisa Rose' => 2.5, 'Gene Seymour' => 3.0, 'Michael Phillips' => 2.5, }, 'You, Me and Dupree' => { 'Lisa Rose' => 2.5, 'Toby' => 1.0, }, },
  • 13. del.icio.us API ‣ ‣ ‣ 1 0
  • 14. • • ‣ Night xNight Lady xLady Snakes 4.5 0.182 0.819 0.222 0.999 Superman 4 0.103 0.412 0.091 0.364 Dupree 1 0.148 0.148 0.4 0.4 0.433 1.379 0.713 1.763 3.185 2.473
  • 15. • • ‣ Night xNight Lady xLady Snakes 4.5 0.182 0.819 0.222 0.999 Superman 4 0.103 0.412 0.091 0.364 Dupree 1 0.148 0.148 0.4 0.4 0.433 1.379 0.713 1.763 3.185 2.473
  • 16. • • ‣ Night xNight Lady xLady Snakes 4.5 0.182 0.819 0.222 0.999 Superman 4 0.103 0.412 0.091 0.364 Dupree 1 0.148 0.148 0.4 0.4 0.433 1.379 0.713 1.763 3.185 2.473
  • 17. (cont.) • ‣ ‣ • ‣ • ‣
  • 18. vs • • • • • • • •
  • 19. ‣ ‣ • ‣ ‣ •
  • 20. (cont.) • ‣ • ‣ ‣