sub sequential { my $self = shift; my $sl_ctl = $self->{slctl}; my $sl_len = scalar(@$sl_ctl); my $mode = $self->{params}->{mode}; my $m_clust = $mt_param{$mode}->{cluster}; my @tl_rtl = (); &log("mt: entering sequential, mode >$mode<...\n"); $m_clust = &get_maxval([1, $m_clust]); for(my $i = 0; $i < $sl_len; $i++) { my $idx_la = &get_minval([$sl_len-1, $i + $m_clust]); my $phrase; my $rawtr; retry: &log("I: $i IDX_LA: $idx_la\n"); $phrase = join ' ', @$sl_ctl[$i..$idx_la]; $rawtr = $self->get_rawtr($phrase); if(@$rawtr) { my $disam = $self->disambiguate($phrase, $rawtr, $i,$idx_la); push @tl_rtl, $disam; } else { if($idx_la > $i) { $idx_la--; goto retry; } push @tl_rtl, $phrase; } $i = $idx_la; } @tl_rtl = &trim(@tl_rtl); $self->{tlrtl} = \@tl_rtl; return TRUE; }