From 730da7edec8b0af66fec857fcf6420db4290eea2 Mon Sep 17 00:00:00 2001 From: phikoehn Date: Sat, 8 Jun 2013 13:39:15 +0100 Subject: [PATCH] sparse feature specification bug fix --- scripts/ems/experiment.meta | 2 +- scripts/ems/support/build-sparse-features.perl | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/ems/experiment.meta b/scripts/ems/experiment.meta index 7ac3e8240..875296d41 100644 --- a/scripts/ems/experiment.meta +++ b/scripts/ems/experiment.meta @@ -576,7 +576,7 @@ build-sparse out: sparse ignore-unless: sparse-features rerun-on-change: sparse-features - default-name: model/most-frequent-words + default-name: model/sparse-features template: $moses-script-dir/ems/support/build-sparse-features.perl IN $input-extension $output-extension OUT "$sparse-features" create-config in: sigtest-filter-reordering-table sigtest-filter-phrase-translation-table generation-table sparse corpus-mml-prefilter=OR=corpus-mml-postfilter=OR=domains INTERPOLATED-LM:binlm LM:binlm diff --git a/scripts/ems/support/build-sparse-features.perl b/scripts/ems/support/build-sparse-features.perl index 2bda46722..9e4b35a77 100755 --- a/scripts/ems/support/build-sparse-features.perl +++ b/scripts/ems/support/build-sparse-features.perl @@ -46,20 +46,20 @@ foreach my $feature_spec (split(/,\s*/,$specification)) { $ini .= "\n"; } elsif ($SPEC[0] eq 'word-translation') { - $ini .= "WordTranslationFeature input-factor=0 output-factor=0 simple=1 source-context=0 target-context=0"; - + my $extra_ini = ""; if ($SPEC[1] eq 'top' && $SPEC[2] =~ /^\d+$/ && $SPEC[3] =~ /^\d+$/) { my $file_in = &create_top_words($input_extension, $SPEC[2]); my $file_out = &create_top_words($output_extension, $SPEC[3]); - $ini .= " source-path=$file_in target-path=$file_out" + $extra_ini .= " source-path=$file_in target-path=$file_out" } elsif ($SPEC[1] eq 'all') { - + # nothing to specify } else { - die("ERROR: Unknown parameter specification in '$feature_spec'\n"); + die("ERROR: Unknown parameter specification in '$SPEC[1]'\n"); } - $ini .= "\n"; + my ($input_factor,$output_factor) = split(/\-/,$factor); + $ini .= "WordTranslationFeature input-factor=$input_factor output-factor=$output_factor simple=1 source-context=0 target-context=0$extra_ini\n"; } elsif ($SPEC[0] eq 'phrase-length') { $ini .= "PhraseLengthFeature\n";