#!/usr/bin/perl -w use strict; my $BIN = '/nfs/isd3/hdaume/bin.i686'; my $RES = '/nfs/isd3/hdaume/projects/chunking'; my $tmpFile = "/tmp/tagchunk.input." . int(rand() * 10000000); my $weightfile = "w-5"; open T, ">$tmpFile" or die; my @fn = (); my @lc = (); my $nf = 0; while (1) { my $fname = shift or last; if ($fname eq '-faster') { $weightfile = "w-1"; } elsif ($fname eq '-lc') { $weightfile = "w-lc-5"; } elsif ($fname eq '-') { while (my $fn = <>) { chomp $fn; open F, $fn or die; my $l = 0; while () { $l++; print T $_; } close F or die; $fn[$nf] = 'STDOUT'; $lc[$nf] = $l; $nf++; } last; } else { open F, $fname or die; my $l = 0; while () { $l++; print T $_; } close F or die; $fn[$nf] = $fname; $lc[$nf] = $l; $nf++; } } close T or die; open I, "$BIN/tagchunk -predict . $RES/$weightfile $tmpFile $RES |" or die; for (my $n=0; $n<$nf; $n++) { open O, ">$fn[$n].tc" or die; for (my $l=0; $l<$lc[$n]; $l++) { my $line = ; if (not defined $line) { die "not enough lines from tagchunk\n"; } print O $line; } close O or die; } while () { die "too many lines from tagchunk\n"; } close I or die; `rm -f $tmpFile`;