From 05958f77be50229b534e3886fa42de4b8612343e Mon Sep 17 00:00:00 2001 From: Franck Dary <franck.dary@lis-lab.fr> Date: Wed, 26 Jun 2019 13:07:56 +0200 Subject: [PATCH] Improved featureExtraction --- trainer/src/Trainer.cpp | 6 +++--- transition_machine/include/FeatureModel.hpp | 5 +++++ transition_machine/src/FeatureModel.cpp | 6 ++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/trainer/src/Trainer.cpp b/trainer/src/Trainer.cpp index 57cc4b0..8890b80 100644 --- a/trainer/src/Trainer.cpp +++ b/trainer/src/Trainer.cpp @@ -83,7 +83,7 @@ void Trainer::computeScoreOnDev() else { // Print current iter advancement in percentage - if (ProgramParameters::interactive && !ProgramParameters::featureExtraction) + if (ProgramParameters::interactive) { int totalSize = ProgramParameters::devTapeSize; int steps = devConfig->getHead(); @@ -223,7 +223,7 @@ void Trainer::doStepTrain() } // Print current iter advancement in percentage - if (ProgramParameters::interactive && !ProgramParameters::featureExtraction) + if (ProgramParameters::interactive) { int totalSize = ProgramParameters::iterationSize == -1 ? ProgramParameters::tapeSize : ProgramParameters::iterationSize; int steps = ProgramParameters::iterationSize == -1 ? trainConfig.getHead() : nbSteps; @@ -298,7 +298,7 @@ void Trainer::doStepTrain() if (ProgramParameters::featureExtraction) { auto features = tm.getCurrentClassifier()->getFeatureModel()->getFeatureDescription(trainConfig).featureValues(); - fprintf(stdout, "%s\t%s\n", oAction.c_str(), features.c_str()); + fprintf(stdout, "%s\t%s\t%s\n", tm.getCurrentClassifier()->getFeatureModel()->filename.c_str(), oAction.c_str(), features.c_str()); } if (TI.getEpoch() >= k && choiceWithProbability(ProgramParameters::dynamicProbability)) diff --git a/transition_machine/include/FeatureModel.hpp b/transition_machine/include/FeatureModel.hpp index f802ed6..25a7242 100644 --- a/transition_machine/include/FeatureModel.hpp +++ b/transition_machine/include/FeatureModel.hpp @@ -103,6 +103,11 @@ class FeatureModel public : + /// @brief The name of the FeatureModel file. + std::string filename; + + public : + /// @brief Tranform a Policy into the corresponding string. /// /// @param policy The Policy. diff --git a/transition_machine/src/FeatureModel.cpp b/transition_machine/src/FeatureModel.cpp index 1b0c01d..b4acf31 100644 --- a/transition_machine/src/FeatureModel.cpp +++ b/transition_machine/src/FeatureModel.cpp @@ -21,6 +21,8 @@ FeatureModel::FeatureDescription & FeatureModel::getFeatureDescription(Config & FeatureModel::FeatureModel(const std::string & filename) { + this->filename = getFilenameFromPath(filename); + File file(filename, "r"); FILE * fd = file.getDescriptor(); char buffer[1024]; @@ -141,8 +143,8 @@ std::string FeatureModel::FeatureDescription::featureValues() std::string res; for (auto & feature : values) - for (auto & value : feature.values) - res += value + "\t"; + for (unsigned int i = 0; i < feature.values.size(); i++) + res += feature.values[i] + (i == feature.values.size()-1 ? "\t" : " "); if (!res.empty()) res.pop_back(); -- GitLab