#!/usr/bin/perl $home = "/home/arch/rothgroup/punyakan"; $dir = "$home/ShallowParsing"; $src = "/home/roth/punyakan/shallow-parser/bin"; $exp = "$dir/expParamNewFeatTagNP"; $bin = "$dir/bin"; $corpus = "$dir/corpus"; $allout = "$exp/out"; %params = (18 => "-W 1.1,0.9,18,1:1-3", D => "-W 1.1,0.9:1-3"); @thick = (0, 1, 1.5, 2); @round = (2, 3, 5, 7, 9); $p = $ARGV[0]; $t = $ARGV[1]; $r = $ARGV[2]; $out = $ARGV[3]; $outTmp = "/scratch/punyakan_ShallowParsingNewFeatTagNP.$p.$t.$r"; system "mkdir $outTmp"; system "cp $allout/*lex.gz $allout/*train90.gz $allout/*train10.gz $corpus/train10.stonly $outTmp"; system "gunzip $outTmp/*gz"; #foreach $p (keys %params) { # foreach $t (@thick) { # foreach $r (@round) { print "parameter set: $p, thickness: $t, round: $r\n"; print "training O classifier\n"; system "$bin/snow -train -I $outTmp/O_nOi_nOo.train90 " . "-F $outTmp/O_nOi_nOo.WN.net $params{$p} -S $t -r $r -e count:1 "; print "training C classifier\n"; system "$bin/snow -train -I $outTmp/C_nCi_nCo.train90 " . "-F $outTmp/C_nCi_nCo.WN.net $params{$p} -S $t -r $r -e count:1"; print "testing O classifier\n"; system "$bin/snow -test -I $outTmp/O_nOi_nOo.train10 " . "-F $outTmp/O_nOi_nOo.WN.net -e count:1 " . "-o allactivations -R $outTmp/O_nOi_nOo.WN.res"; print "testing C classifier\n"; system "$bin/snow -test -I $outTmp/C_nCi_nCo.train10 " . "-F $outTmp/C_nCi_nCo.WN.net -e count:1 " . "-o allactivations -R $outTmp/C_nCi_nCo.WN.res"; print "converting result to combinator format\n"; system "$bin/act2hmmin.pl $outTmp/O_nOi_nOo.WN.res $outTmp/C_nCi_nCo.WN.res " . "$corpus/train10.st $outTmp/O_nOi_nOo.lex " . "$outTmp/C_nCi_nCo.lex > $outTmp/O_C.WN.comb"; print "converting Sigmoid result to combinator format\n"; system "$bin/actSig2hmmin.pl $outTmp/O_nOi_nOo.WN.res $outTmp/C_nCi_nCo.WN.res " . "$corpus/train10.st $outTmp/O_nOi_nOo.lex " . "$outTmp/C_nCi_nCo.lex > $outTmp/O_C.WN.Sig.comb"; system "gzip $outTmp/*net $outTmp/*res"; print "start combinator loop\n"; for ($t_o = 0.1; $t_o < 0.51; $t_o += 0.02) { for ($t_c = 0.1; $t_c < 0.51; $t_c += 0.02) { $ofile = "O_C.$t_o.$t_c.WN"; system "$bin/cscl $outTmp/O_C.WN.comb " . "$t_o $t_c > $outTmp/$ofile.stonly"; system "$bin/recall_precision.pl $outTmp/train10.stonly " . "$outTmp/$ofile.stonly > $out/$ofile.rp"; system "rm $outTmp/$ofile.stonly &"; $oSigfile = "O_C.$t_o.$t_c.WN.Sig"; system "$bin/cscl $outTmp/O_C.WN.Sig.comb " . "$t_o $t_c > $outTmp/$oSigfile.stonly"; system "$bin/recall_precision.pl $outTmp/train10.stonly " . "$outTmp/$oSigfile.stonly > $out/$oSigfile.rp"; system "rm $outTmp/$oSigfile.stonly &"; } } print "run hmm\n"; system "$bin/HMMNor $exp/O_C.pr1 $exp/O_C.prss $outTmp/O_C.WN.comb O_C.allow " . "> $outTmp/O_C.WN.hmm.stonly"; system "$bin/recall_precision.pl $outTmp/train10.stonly " . "$outTmp/O_C.WN.hmm.stonly > $out/O_C.WN.hmm.rp"; system "rm $outTmp/O_C.WN.hmm.stonly &"; system "$bin/NewHMMNorNoDivide $exp/O_C.pr1 $exp/O_C.prss $outTmp/O_C.WN.comb O_C.allow " . "> $outTmp/O_C.WN.hmmnodiv.stonly"; system "$bin/recall_precision.pl $outTmp/train10.stonly " . "$outTmp/O_C.WN.hmmnodiv.stonly > $out/O_C.WN.hmmnodiv.rp"; system "rm $outTmp/O_C.WN.hmmnodiv.stonly &"; system "$bin/HMMNor $exp/O_C.pr1 $exp/O_C.prss $outTmp/O_C.WN.Sig.comb O_C.allow " . "> $outTmp/O_C.WN.Sig.hmm.stonly"; system "$bin/recall_precision.pl $outTmp/train10.stonly " . "$outTmp/O_C.WN.Sig.hmm.stonly > $out/O_C.WN.Sig.hmm.rp"; system "rm $outTmp/O_C.WN.Sig.hmm.stonly &"; system "$bin/NewHMMNorNoDivide $exp/O_C.pr1 $exp/O_C.prss $outTmp/O_C.WN.Sig.comb O_C.allow " . "> $outTmp/O_C.WN.Sig.hmmnodiv.stonly"; system "$bin/recall_precision.pl $outTmp/train10.stonly " . "$outTmp/O_C.WN.Sig.hmmnodiv.stonly > $out/O_C.WN.Sig.hmmnodiv.rp"; system "rm $outTmp/O_C.WN.Sig.hmmnodiv.stonly &"; system "gzip $outTmp/*comb"; system "mv $outTmp/*gz $out"; # } # } #} system "rm -r $outTmp"; print "Done!\n";