]> git.donarmstrong.com Git - deb_pkgs/scowl.git/blob - src/count
upgrade to scowl 7.1
[deb_pkgs/scowl.git] / src / count
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 my @data;
7
8 my $c = 0;
9 my $hc = 0;
10 foreach my $f (10,20,35,40,50,55,60,70,80,95) {
11   my $n = `bash -c 'cat final/{american,english}-{words,abbreviations,contractions}.$f 2> /dev/null | wc -l'` + 0;
12   my $p = `bash -c 'cat final/{american,english}-{proper-names,upper}.$f 2> /dev/null | wc -l'` + 0;
13   my $c0 = $c;
14   $c = $c + $n + $p;
15   my $h;
16   for (my $i = $c0+1; $i <= $c; ++$i) {
17       $h += 1/$i;
18   }
19   $hc += $h;
20   push @data, [$f, $n, $p, $c, $hc];
21 }
22
23 sub commify {
24     local $_  = shift;
25     1 while s/^([-+]?\d+)(\d{3})/$1,$2/;
26     return $_;
27 }
28
29
30 #print "  Size   Words       Names    Running Total  %        Zipf's law\n";
31 print "  Size   Words       Names    Running Total  %\n";
32
33 foreach (@data) {
34     my ($f, $n, $p, $c0, $h) = @$_;
35     my $cp = 100*$c0/$c;
36     my $hp = 100*$h/$hc;
37     #printf("   %2d  %7s     %7s      %7s   %5.1f         %6.2f\n", $f, commify($n), commify($p), commify($c0), $cp, $hp);
38     printf("   %2d  %7s     %7s      %7s   %5.1f\n", $f, commify($n), commify($p), commify($c0), $cp);
39     #print "$f $n $p $c0   $cp $hp\n";
40 }