diff options
Diffstat (limited to 'dtrain/dtest.cc')
| -rw-r--r-- | dtrain/dtest.cc | 33 | 
1 files changed, 22 insertions, 11 deletions
| diff --git a/dtrain/dtest.cc b/dtrain/dtest.cc index 9975794f..5ae473e6 100644 --- a/dtrain/dtest.cc +++ b/dtrain/dtest.cc @@ -11,11 +11,13 @@ bool  init(int argc, char** argv, po::variables_map* conf)  {    int N; +  bool q;    po::options_description opts( "Options" );    opts.add_options() -    ( "decoder-config,c", po::value<string>(),                  "configuration file for cdec" ) -    ( "weights,w",        po::value<string>(),                  "weights file") -    ( "ngrams,n",         po::value<int>(&N)->default_value(4), "N for Ngrams (default 5)" ); +    ( "decoder-config,c", po::value<string>(),                      "configuration file for cdec" ) +    ( "weights,w",        po::value<string>(),                      "weights file") +    ( "ngrams,n",         po::value<int>(&N)->default_value(4),     "N for Ngrams (default 5)" ) +    ( "quiet,q",          po::value<bool>(&q)->default_value(true), "do not output translations" );    po::options_description cmdline_options;    cmdline_options.add(opts);    po::store( parse_command_line(argc, argv, cmdline_options), *conf ); @@ -44,6 +46,7 @@ main(int argc, char** argv)    Decoder decoder(ini_rf.stream());    KBestGetter observer(k);    size_t N = conf["ngrams"].as<int>(); +  bool quiet = conf["quiet"].as<bool>();    Weights weights;    weights.InitFromFile(conf["weights"].as<string>()); @@ -56,13 +59,15 @@ main(int argc, char** argv)    string in, psg;    size_t sid = 0;    double overall = 0.0; -  cerr << "(1 dot equals 100 lines of input)" << endl; +  double overall1 = 0.0; +  double overall2 = 0.0; +  cerr << "(a dot equals 100 lines of input)" << endl;    while( getline(cin, in) ) {      if ( (sid+1) % 100 == 0 ) {          cerr << ".";          if ( (sid+1)%1000 == 0 ) cerr << endl;      } -    if ( sid > 5000 ) break; +    //if ( sid > 5000 ) break;      strs.clear();      boost::split( strs, in, boost::is_any_of("\t") );      // grammar @@ -75,19 +80,25 @@ main(int argc, char** argv)      boost::split( ref_strs, strs[1], boost::is_any_of(" ") );      register_and_convert( ref_strs, ref_ids );      // scoring kbest -    double score = 0; -    Scores scores; +    double score = 0.0; +    double score1 = 0.0; +    double score2 = 0.0;      NgramCounts counts = make_ngram_counts( ref_ids, kb->sents[0], 4 );      score = smooth_bleu( counts,                           ref_ids.size(),                           kb->sents[0].size(), N ); -    ScorePair sp( kb->scores[0], score ); -    scores.push_back( sp ); -    //cout << TD::GetString( kb->sents[0] ) << endl; +    score1 = stupid_bleu( counts, ref_ids.size(), kb->sents[0].size(), N) ; +    score2 = bleu( counts, ref_ids.size(), kb->sents[0].size(), N ); +    //if ( ! quiet ) +    cout << TD::GetString( kb->sents[0] ) << endl;      overall += score; +    overall1 += score1; +    overall2 += score2;      sid += 1;    } -  cout << "Average score: " << overall/(sid+1) << endl; +  cerr << "Average score (smooth): " << overall/(double)(sid+1) << endl; +  cerr << "Average score (stupid): " << overall1/(double)(sid+1) << endl; +  cerr << "Average score (normal): " << overall2/(double)(sid+1) << endl;    cerr << endl;    return 0; | 
