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(); }
//Draw void OsgMainApp::draw( int step,int isFromPic ){ loadModelFile( step, isFromPic); deleteModels(); if (_viewer != NULL) { _viewer->frame(); } }
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; }