source: nawszelkiwypadek/tools/gue_dic/cut_prefs.pl @ f1563c0

help
Last change on this file since f1563c0 was f1563c0, checked in by obrebski <obrebski@…>, 16 years ago

git-svn-id: svn://atos.wmid.amu.edu.pl/utt@3 e293616e-ec6a-49c2-aa92-f4a8b91c5d16

  • Property mode set to 100755
File size: 1.7 KB
Line 
1#! /usr/bin/perl
2
3use locale;
4use strict;
5
6if (@ARGV < 3) {
7    print "USAGE: cut_prefs.pl CUT_OFF TOTAL_PER ABS_CUT\n\n";
8    print "Obcina wpisy ma³o wa¿ne, opis nie jest uwzglêdniany\n";
9    print "je¿eli zachodzi jeden z warunków:\n";
10    print " - jezeli liczba wystapien danego opisu jest mniejsza\n";
11    print "   od \$CUT_OFF*(liczba wystapien poprzedniego opisu)\n";
12    print " - jezeli liczba wystapien danego opisu jest mniejsza\n";
13    print "   od \$TOTAL_PER*(suma wszystkich wystapien)\n";
14    print " - jezeli liczba wystapien danego opisu jest mniejsza\n";
15    print "   od \$ABS_CUT\n";
16    exit;
17}
18
19# jezeli liczba wystapien danego opisu jest mniejsza
20# od $CUT_OFF*(liczba wystapien poprzedniego opisu) - opis nie jest uwzgledniany
21my $CUT_OFF = shift;
22
23# jezeli liczba wystapien danego opisu jest mniejsza
24# od $TOTAL_PER*(suma wszystkich wystapien) - opis nie jest uwzgledniany
25my $TOTAL_PER = shift;
26
27# jezeli liczba wystapien danego opisu jest mniejsza
28# od $ABS_CUT - opis nie jest uwzgledniany
29my $ABS_CUT = shift;
30
31my $pref = "";
32my $oldPref = " ";
33my $countTotal = -1;
34my $count = -1;
35
36while (<>) {
37
38    if (($count == -1) && ($_ =~ /^$oldPref\t.*/)) {
39        next;
40    }
41
42    if ($pref =~ //) {
43        $_ =~ /^(\w+)\t.+\t(\d+)\t(\d+)/;
44        $pref = $1;
45        $count = $2;
46        $countTotal = $3;
47#       print "\$pref=$pref\t\$count=$count\t\$countTotal=$countTotal\n";
48    }
49    $_ =~ /\w+\t.+\t(\d+)\t\d+/;
50    my $c = $1;
51#     print "\$c=$c\t\$CUT_OFF*\$count=$CUT_OFF*$count\t\$TOTAL_PER*\$countTotal=".$TOTAL_PER*$countTotal."\n";
52    if (($CUT_OFF*$count < $c) && ($TOTAL_PER*$countTotal < $c) && ($ABS_CUT < $c)) {
53        $count = $c;
54        print $_;
55    } else {
56        $count = -1;
57        $oldPref = $pref;
58        $pref = "";
59    }
60}
Note: See TracBrowser for help on using the repository browser.