Skip to content
Snippets Groups Projects
Commit 4818cfc8 authored by Franck Dary's avatar Franck Dary
Browse files

Giving MCD to the eval script

parent dfd75ada
No related branches found
No related tags found
No related merge requests found
......@@ -26,7 +26,7 @@ class Decoder
Decoder(ReadingMachine & machine);
std::size_t decode(BaseConfig & config, std::size_t beamSize, float beamThreshold, bool debug, bool printAdvancement);
void evaluate(const std::vector<const Config *> & configs, std::filesystem::path modelPath, const std::string goldTSV, const std::set<std::string> & predicted);
void evaluate(const std::vector<const Config *> & configs, std::filesystem::path modelPath, const std::string goldTSV, const std::set<std::string> & predicted, std::string mcd);
std::vector<std::pair<float,std::string>> getF1Scores(const std::set<std::string> & colNames) const;
std::vector<std::pair<float,std::string>> getAlignedAccs(const std::set<std::string> & colNames) const;
std::vector<std::pair<float,std::string>> getRecalls(const std::set<std::string> & colNames) const;
......
......@@ -135,7 +135,7 @@ std::string Decoder::getMetricOfColName(const std::string & colName) const
return colName;
}
void Decoder::evaluate(const std::vector<const Config *> & configs, std::filesystem::path modelPath, const std::string goldTSV, const std::set<std::string> & predicted)
void Decoder::evaluate(const std::vector<const Config *> & configs, std::filesystem::path modelPath, const std::string goldTSV, const std::set<std::string> & predicted, std::string mcd)
{
evaluation.clear();
auto predictedTSV = (modelPath/"predicted_dev.tsv").string();
......@@ -144,7 +144,7 @@ void Decoder::evaluate(const std::vector<const Config *> & configs, std::filesys
configs[i]->print(predictedTSVFile, i==0);
std::fclose(predictedTSVFile);
std::FILE * evalFromUD = popen(fmt::format("{} {} {} -x {}", "../scripts/conll18_ud_eval.py", goldTSV, predictedTSV, util::join(",", std::vector<std::string>(predicted.begin(), predicted.end()))).c_str(), "r");
std::FILE * evalFromUD = popen(fmt::format("{} {} {} -x {} --mcd {}", "../scripts/conll18_ud_eval.py", goldTSV, predictedTSV, util::join(",", std::vector<std::string>(predicted.begin(), predicted.end())), mcd).c_str(), "r");
char buffer[1024];
while (!std::feof(evalFromUD))
......
......@@ -345,7 +345,7 @@ int MacaonTrain::main()
std::vector<const Config *> devConfigsPtrs;
for (auto & devConfig : devConfigs)
devConfigsPtrs.emplace_back(&devConfig);
decoder.evaluate(devConfigsPtrs, modelPath, devTsvFile, machine.getPredicted());
decoder.evaluate(devConfigsPtrs, modelPath, devTsvFile, machine.getPredicted(), mcd);
devScores = decoder.getF1Scores(machine.getPredicted());
}
else
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment