public void decode(File trois, File quatre, File cinq) throws IOException {
		PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(quatre)), false);
		Scanner scanner1 = new Scanner(new BufferedReader(new FileReader(trois)));
		Scanner scanner2 = new Scanner(new BufferedReader(new FileReader(cinq)));
		ArrayList<String> to_translate = new ArrayList<String>();
		ArrayList<String> to_compare = new ArrayList<String>();

		int row_count = 0;
		while (scanner1.hasNextLine() && scanner2.hasNextLine()) {
			String line1 = scanner1.nextLine().trim();
			String line2 = scanner2.nextLine().trim();
			to_translate.add(row_count, line1);
			to_compare.add(row_count, line2);
			row_count++;
		}
		scanner1.close();
		scanner2.close();

		//int count_getright = 0;
		//int sum_all_to_translate = 0;
		//int sum_all_to_compare = 0;
		for (int i = 0; i <= row_count - 1; i++) {
			String line_to_translate = to_translate.get(i);
			String[] temp = line_to_translate.split(" ");

			if (temp.length <= 10) {
				String line_to_compare = to_compare.get(i);
				//sum_all_to_translate += temp.length;
				//sum_all_to_compare += line_to_compare.split(" ").length;

				StringBuilder sentence = new StringBuilder();
				for (String word : temp) {
					double max_prob = -99;
					String translation = word;
					if (this.rev.containsKey(word)) {
						HashSet<String> hs = this.rev.get(word);
						for (String candidate : hs) {
							double cur_tau = this.model.get(candidate).get(word).getT();
							if (cur_tau > max_prob) {
								max_prob = cur_tau;
								translation = candidate;
							}
						}
					}
					sentence.append(" ").append(translation);

					//if (line_to_compare.indexOf(translation) != -1) {
					//	count_getright++;
					//}
				}
				pw.println(sentence.toString());
				pw.flush();
			}
                        else{
			pw.println("");
			pw.flush();}
		}
		// get precision
		//double precision = (count_getright + 0.0) / sum_all_to_translate;
		//System.out.println("precision: " + precision);
		// get recall
		//double recall = (count_getright + 0.0) / sum_all_to_compare;
		//System.out.println("recall: " + recall);
		// F score
		//System.out.println("F-score: " + 2 * (precision * recall) / (precision + recall));

		pw.close();
	}