void Labeler::test(const string& testFile, const string& outputFile, const string& modelFile) {
    loadModelFile(modelFile);
    vector<Instance> testInsts;
    m_pipe.readInstances(testFile, testInsts);

    vector<Example> testExamples;
    initialExamples(testInsts, testExamples);

    int testNum = testExamples.size();
    vector<Instance> testInstResults;
    Metric metric_test;
    metric_test.reset();
    for (int idx = 0; idx < testExamples.size(); idx++) {
        vector<string> result_labels;
        predict(testExamples[idx].m_features, result_labels, testInsts[idx].words);
        testInsts[idx].SegEvaluate(result_labels, metric_test);
        Instance curResultInst;
        curResultInst.copyValuesFrom(testInsts[idx]);
        testInstResults.push_back(curResultInst);
    }
    std::cout << "test:" << std::endl;
    metric_test.print();

    m_pipe.outputAllInstances(outputFile, testInstResults);

}
void Segmentor::test(const string& testFile, const string& outputFile, const string& modelFile) {
  loadModelFile(modelFile);
  vector<Instance> testInsts;
  m_pipe.readInstances(testFile, testInsts, m_options.maxInstance);

  vector<vector<string> > testInstResults(testInsts.size());
  Metric metric_test;
  metric_test.reset();
  for (int idx = 0; idx < testInsts.size(); idx++) {
    vector<string> result_labels;
    predict(testInsts[idx], testInstResults[idx]);
    testInsts[idx].evaluate(testInstResults[idx], metric_test);
  }
  std::cout << "test:" << std::endl;
  metric_test.print();

  std::ofstream os(outputFile.c_str());

  for (int idx = 0; idx < testInsts.size(); idx++) {
    for(int idy = 0; idy < testInstResults[idx].size(); idy++){
      os << testInstResults[idx][idy] << " ";
    }
    os << std::endl;
  }
  os.close();
}
Exemplo n.º 3
0
//Draw
void OsgMainApp::draw( int step,int isFromPic ){
    
    loadModelFile( step, isFromPic);
    deleteModels();
    if (_viewer != NULL) {
        _viewer->frame();
    }
}
Exemplo n.º 4
0
int main(int argc, char* argv[] )
{
    srand(time(NULL));

    int verbose = 0;

    char outputFile[256];
    int doOutput = getWriteToFile( argc, argv, outputFile, 256);
    
    if (argc == 1)
    {
        showUsageAndExit();
    }

    moleculizer* pMoleculizer = createNewMoleculizerObject();

    setRateExtrapolation( pMoleculizer, 1 );
    int result = loadModelFile( pMoleculizer, argc, argv);

    switch(result)
    {
    case 0:
        printf("Model loaded successfully.\n");
        break;
    case 1:
        printf("Unknown error on load.  Aborting\n");
        return 1;
    case 2:
        printf("Document unparsable.  Aborting.\n");
        return 1;
    case 3:
        printf("Moleculizer has already loaded rules. Ignoring and continuing.\n");
        return 1;
    }

  int numIter = getNumberOfIterations(argc, argv);
  int maxSpecies = getMaxNumSpecies( argc, argv);
  int maxRxns = getMaxNumReactions( argc, argv);

  if (numIter > 0 && (maxSpecies > 0 || maxRxns > 0) )
  {
      // ANCHOR
      printf("Error, if either (max species and/or max rxns) can be set or numIters. ");
      showUsageAndExit();
      
  }

  verbose = getVerbose(argc, argv);
  
  if(numIter == -1 )
  {
      int numRxns;
      int numSpec;

      species** speciesArray;
      reaction** rxnArray;
      
      int errorCode = \
          getBoundedNetwork( pMoleculizer, maxSpecies, maxRxns, &speciesArray, &numSpec, &rxnArray, &numRxns );

      if (errorCode)
      {
          printf("Unknown erorr.  Check error messages for description.  Exiting...\n");
          exit(1);
      }
      else
      {
          numIter = 10;
          printf("Network generated to %d species and %d reactions.\n", numSpec, numRxns);
      }
  }
  else
  {
      int iter = 0;

      for( iter = 0; iter != numIter; ++iter)
      {
          species** theSpecies;
          int numSpecies = 0;

          getAllExteriorSpecies( pMoleculizer, &theSpecies, &numSpecies);

          if (numSpecies == 0)
          {
              printf("Entire network has been generated on the %dth iteration.\n", iter);
              freeSpeciesArray( theSpecies, numSpecies);
              break;
          }
          
          /* Get a random number in the range [0, numSpecies) */
          int speciesNumber = rand() % numSpecies;

          printf("Iteration %d: Expanding %s\n", iter + 1, theSpecies[speciesNumber]->name);
          incrementSpecies( pMoleculizer, theSpecies[speciesNumber]->name);

          freeSpeciesArray( theSpecies, numSpecies);
      }

  }

  if (numIter == -1)
  {
      printf("Expanded entire network.\n");
  }
  else
  {
      printf("Expanded %d iterations.", numIter);
  }

  printf("\n##########################################\n");

  printf("There are %d species and %d reactions.\n", 
         getNumberOfSpecies(pMoleculizer),
         getNumberOfReactions(pMoleculizer) );


  if ( verbose )
  {
      showAllSpecies( pMoleculizer );
      showAllReactions( pMoleculizer);
  }

  if (doOutput)
  {
      writeDotFile(pMoleculizer, outputFile);
  }
           
  freeMoleculizerObject( pMoleculizer );
  return 0;

}