Changeset 3303 for trunk/gsdl/perllib
- Timestamp:
- 2002-07-31T04:10:41+12:00 (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/perllib/classify/AZCompactList.pm
r3302 r3303 58 58 -removeprefix regex pattern to remove from metadata before sorting 59 59 -doclevel top|section (Defaults to top) 60 -freqsort Sort by node frequency rather than alpha-numeric 60 61 -mingroup N Minimum num of documents required to form a new group 61 62 -minnesting N Minimum list size to become a nested list … … 78 79 my $doclevel = "top"; 79 80 my $onlyfirst = 0; 81 my $freqsort = 0; 80 82 my $recopt = undef; 81 83 … … 90 92 q^doclevel/.*/top^, \$doclevel, 91 93 q^onlyfirst/.*/0^, \$onlyfirst, 94 q^freqsort/.*/0^, \$freqsort, 92 95 q^recopt/.*/-1^, \$recopt, 93 96 … … 127 130 $self->{'onlyfirst'} = $onlyfirst; 128 131 132 if ($freqsort != 0) { 133 $freqsort = 1; 134 } 135 $self->{'freqsort'} = $freqsort; 136 129 137 if ($recopt == -1) { 130 138 $recopt = undef; … … 475 483 } 476 484 485 sub frequency_cmp 486 { 487 my ($self,$a,$b) = @_; 488 489 490 my $title_a = $self->{'reclassifylist'}->{$a}; 491 my $title_b = $self->{'reclassifylist'}->{$b}; 492 493 print STDERR "*** title a = $title_a\n"; 494 print STDERR "*** title b = $title_b\n"; 495 496 my $a_freq = 1; 497 my $b_freq = 1; 498 499 if ($a =~ m/^CLASSIFY\.(.*)$/) 500 { 501 my $a_node = $1; 502 my $a_nodeinfo = $self->{'classifiers'}->{$a_node}->{'classifyinfo'}; 503 $a_freq = scalar(@{$a_nodeinfo->{'contains'}}); 504 } 505 506 if ($b =~ m/^CLASSIFY\.(.*)$/) 507 { 508 my $b_node = $1; 509 my $b_nodeinfo = $self->{'classifiers'}->{$b_node}->{'classifyinfo'}; 510 $b_freq = scalar(@{$b_nodeinfo->{'contains'}}); 511 } 512 513 ## print STDERR "*** comparing $a_freq <-> $b_freq\n"; 514 515 return $b_freq <=> $a_freq; 516 } 517 477 518 sub get_classify_info { 478 519 my $self = shift (@_); … … 484 525 $self->get_reclassify_info(); 485 526 486 487 # my @reclassified_classlist 488 # = sort {$self->{'reclassifylist'}->{$a} cmp $self->{'reclassifylist'}->{$b};} keys %{$self->{'reclassifylist'}}; 489 490 # alpha_numeric_cmp is slower but handles numbers better ... 491 my @reclassified_classlist 492 = sort { $self->alpha_numeric_cmp($a,$b) } keys %{$self->{'reclassifylist'}}; 493 527 my @reclassified_classlist; 528 if ($self->{'freqsort'}) 529 { 530 ## print STDERR "***** Away to start freq sort\n"; 531 532 @reclassified_classlist 533 = sort { $self->frequency_cmp($a,$b) } keys %{$self->{'reclassifylist'}}; 534 # supress sub-grouping by alphabet 535 map { $self->{'reclassifylist'}->{$_} = "A".$self->{'reclassifylist'}; } keys %{$self->{'reclassifylist'}}; 536 537 } 538 else 539 { 540 # @reclassified_classlist 541 # = sort {$self->{'reclassifylist'}->{$a} cmp $self->{'reclassifylist'}->{$b};} keys %{$self->{'reclassifylist'}}; 542 543 # alpha_numeric_cmp is slower but handles numbers better ... 544 545 @reclassified_classlist 546 = sort { $self->frequency_cmp($a,$b) } keys %{$self->{'reclassifylist'}}; 547 548 } 494 549 495 550 return $self->splitlist (\@reclassified_classlist);
Note:
See TracChangeset
for help on using the changeset viewer.