Commit 4818cfc8 authored by Franck Dary's avatar Franck Dary
Browse files

Giving MCD to the eval script

parent dfd75ada
......@@ -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
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment