#!/usr/bin/perl
#script for evaluating P@10
@init = ("airplane", "airport", "animal", "art", "ball", "bar", "barcelona", "beach", "bear", "beauty", "beer", "berlin", "bicycle", "boat", "bridge", "building", "butterfly", "cake", "camera", "car", "cat", "cathedral", "child", "chocolate", "christmas", "couple", "cross", "cute", "dinner", "doll", "dress", "duck", "easter", "europe", "eye", "field", "fishing", "flower", "food", "fountain", "funny", "germany", "girl", "guitar", "hair", "happy", "hat", "horse", "hot", "ice", "kitchen", "lighthouse", "love", "man", "mirror", "model", "monument", "moon", "night", "painting", "paris", "park", "pool", "pub", "river", "rose", "sea", "selfportrait", "shoes", "silhouette", "spain", "spider", "sport", "storm", "street", "summer", "sunset", "table", "town", "train", "usa", "wedding");
$cumul_orig = 0;
$cumul_fem = 0;
$cumul_mal = 0;
$cumul_loc = 0;
$cumul_glo = 0;
foreach $in (@init)
{
@images = ();
#open the list of OK images
@oks = ();
open OL, "results/$in";
while(defined($line =
))
{
chomp($line);
push(@oks, $line);
}
close OL;
$ok_orig = 0;
$ok_fem = 0;
$ok_mal = 0;
$ok_loc = 0;
$ok_glo = 0;
#get images from the initial Flickr ranking
$ii = 0;
$orig = "/mnt/user_survey/gender_concepts/flickr_gender/$in/original_rank";
open OR, $orig or die "cant open $orig\n";
while($ii < 10 && defined($ln = ))
{
@cut_line = split(/\t/, $ln);
$out_image = "images/@cut_line[1]".'_'.@cut_line[2].'.jpg';
if(index("@oks", $out_image) != -1){$ok_orig++;}
$ii++;
}
close OR;
#get images from the female reranking
$ii = 0;
$orig = "/mnt/user_survey/gender_concepts/flickr_gender/$in/female_rank";
open OR, $orig or die "cant open $orig\n";
while($ii < 10 && defined($ln = ))
{
@cut_line = split(/\t/, $ln);
$out_image = "images/@cut_line[1]".'_'.@cut_line[2].'.jpg';
if(index("@oks", $out_image) != -1){$ok_fem++;}
$ii++;
}
close OR;
#get images from the male reranking
$ii = 0;
$orig = "/mnt/user_survey/gender_concepts/flickr_gender/$in/male_rank";
open OR, $orig or die "cant open $orig\n";
while($ii < 10 && defined($ln = ))
{
@cut_line = split(/\t/, $ln);
$out_image = "images/@cut_line[1]".'_'.@cut_line[2].'.jpg';
if(index("@oks", $out_image) != -1){$ok_mal++;}
$ii++;
}
close OR;
#get images from the local reranking
$ii = 0;
$orig = "/mnt/user_survey/gender_concepts/flickr_local2/$in/france_rank";
open OR, $orig or die "cant open france\n";
while($ii < 10 && defined($ln = ))
{
@cut_line = split(/\t/, $ln);
$out_image = "images/@cut_line[1]".'_'.@cut_line[2].'.jpg';
if(index("@oks", $out_image) != -1){$ok_loc++;}
$ii++;
}
close OR;
#get images from the global reranking
$ii = 0;
$orig = "/mnt/user_survey/gender_concepts/flickr_local2/$in/all_rank";
open OR, $orig or die "cant open all\n";
while($ii < 10 && defined($ln = ))
{
@cut_line = split(/\t/, $ln);
$out_image = "images/@cut_line[1]".'_'.@cut_line[2].'.jpg';
if(index("@oks", $out_image) != -1){$ok_glo++;}
$ii++;
}
close OR;
$cumul_orig = $cumul_orig + $ok_orig;
$cumul_fem = $cumul_fem + $ok_fem;
$cumul_mal = $cumul_mal + $ok_mal;
$cumul_loc = $cumul_loc + $ok_loc;
$cumul_glo = $cumul_glo + $ok_glo;
$diff_gen = $ok_fem - $ok_mal;
if($ok_fem eq $ok_mal)
{
$pls_gen++;
}
elsif($diff_gen == 1)
{
$one_fem++;
}
elsif($diff_gen == -1)
{
$one_mal++;
}
$diff_loc = $ok_loc - $ok_glo;
if($ok_loc eq $ok_glo)
{
$pls_loc++;
}
elsif($diff_loc == 1)
{
$one_loc++;
}
elsif($diff_loc == -1)
{
$one_glo++;
print "\"$in\", ";
}
}
print "\n";
$p10_orig = $cumul_orig/820;
$p10_fem = $cumul_fem/820;
$p10_mal = $cumul_mal/820;
$p10_loc = $cumul_loc/820;
$p10_glo = $cumul_glo/820;
print "original $p10_orig\n";
print "female $p10_fem\n";
print "male $p10_mal\n";
print "local $p10_loc\n";
print "global $p10_glo\n";
print "gen $pls_gen $one_fem $one_mal\n";
print "loc $pls_loc $one_loc $one_glo\n";