package experiments.collective.entdoccentric; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; /** * Ausgabeklasse welche die Ergebnisse in die jeweiligen Trec_Eval Dateien * schreibt. * * @author zwicklbauer * */ public class TrecEvalResultProcessing implements ResultProcessing { private File resultFile; private File optimalResultFile; private Writer outResult; private Writer outOptimalResult; public TrecEvalResultProcessing() { resultFile = new File(StartEvaluation.resultFile); optimalResultFile = new File(StartEvaluation.qrelsFile); try { outResult = new FileWriter(resultFile, false); outOptimalResult = new FileWriter(optimalResultFile, false); } catch (IOException e) { e.printStackTrace(); } } @Override public void processResult(TrecEvalResultObject object) { String[] resultMatrix = object.getResult(); String line = ""; for (int i = 0; i < resultMatrix.length; i++) { line += resultMatrix[i]+" "; } System.out.println(line); writeResultLine(line); // Write optimal solution String[][] optimalResultMatrix = object.getOptimalResult(); for (int i = 0; i < optimalResultMatrix.length; i++) { line = ""; for (int j = 0; j < optimalResultMatrix[i].length; j++) { line += optimalResultMatrix[i][j] + " "; } System.out.println("Musterlösung: "+line); writeOptimalResultLine(line); } } private void writeResultLine(String line) { try { outResult.write(line); outResult.write(System.getProperty("line.separator")); outResult.flush(); } catch (IOException e) { e.printStackTrace(); } } private void writeOptimalResultLine(String line) { try { outOptimalResult.write(line); outOptimalResult.write(System.getProperty("line.separator")); outOptimalResult.flush(); } catch (IOException e) { e.printStackTrace(); } } @Override public void close() { try { outResult.close(); outOptimalResult.close(); } catch (IOException e) { e.printStackTrace(); } } }