private void execute(File f, int i) throws Exception {
		BufferedReader br = new BufferedReader(new FileReader(f));
		String line = null;
		System.out.println("***********" + f.getName());
		while ((line = br.readLine()) != null) {
			String[] split = line.split(splitmark);
			if (split.length < 2) continue;
			totalWord++;
			
			@SuppressWarnings("unused")
			String word = split[0];
			@SuppressWarnings("unused")
			String lemma = split[1];
			
			String annotated = split[split.length-2];
			String predicted = split[split.length-1];
			
			//TODO:test the top level labels
//			String annotated = split[split.length-2].split("_")[0];
//			String predicted = split[split.length-1].split("_")[0];
			
			//TODO: in oder to generate baselines 
//			String predicted = "Future_Goal/TaskToBeCompleted/ExpectedOutcome";
//			
//			int random = (int )(Math.random() * 36 + 1);
//			System.out.println("random number: " + random);
//
//			switch (random) {
//			case 1:
//				random = 1;
//				predicted = "MyShift_OtherObservation";
//				break;
//			case 2:
//				random = 2;
//				predicted = "PatientIntroduction_AdmissionReason/Diagnosis";
//				break;
//			case 3:
//				random = 3;
//				predicted = "Appointment/Procedure_Status";
//				break;
//			case 4:
//				random = 4;
//				predicted = "PatientIntroduction_Gender";
//				break;
//			case 5:
//				random = 5;
//				predicted = "MyShift_Status";
//				break;
//			case 6:
//				random = 6;
//				predicted = "Future_Discharge/TransferPlan";
//				break;
//			case 7:
//				random = 7;
//				predicted = "MyShift_RiskManagement";
//				break;
//			case 8:
//				random = 8;
//				predicted = "Future_Goal/TaskToBeCompleted/ExpectedOutcome";
//				break;
//			case 9:
//				random = 9;
//				predicted = "PatientIntroduction_Allergy";
//				break;
//			case 10:
//				random = 10;
//				predicted = "Future_Alert/Warning/AbnormalResult";
//				break;
//			case 11:
//				random = 11;
//				predicted = "PatientIntroduction_GivenNames/Initials";
//				break;
//			case 12:
//				random = 12;
//				predicted = "PatientIntroduction_ChronicCondition";
//				break;
//			case 13:
//				random = 13;
//				predicted = "Appointment/Procedure_Day";
//				break;
//			case 14:
//				random = 14;
//				predicted = "MyShift_Output/Diuresis/BowelMovement";
//				break;
//			case 15:
//				random = 15;
//				predicted = "Appointment/Procedure_Description";
//				break;
//			case 16:
//				random = 16;
//				predicted = "PatientIntroduction_Lastname";
//				break;
//			case 17:
//				random = 17;
//				predicted = "PatientIntroduction_UnderDr_Lastname";
//				break;
//			case 18:
//				random = 18;
//				predicted = "Appointment/Procedure_ClinicianGivenNames/Initials";
//				break;
//			case 19:
//				random = 19;
//				predicted = "Appointment/Procedure_ClinicianLastname";
//				break;
//			case 20:
//				random = 20;
//				predicted = "Medication_Medicine";
//				break;
//			case 21:
//				random = 21;
//				predicted = "Appointment/Procedure_Ward";
//				break;
//			case 22:
//				random = 22;
//				predicted = "PatientIntroduction_UnderDr_GivenNames/Initials";
//				break;
//			case 23:
//				random = 23;
//				predicted = "MyShift_Contraption";
//				break;
//			case 24:
//				random = 24;
//				predicted = "MyShift_Wounds/Skin";
//				break;
//			case 25:
//				random = 25;
//				predicted = "PatientIntroduction_CurrentBed";
//				break;
//			case 26:
//				random = 26;
//				predicted = "MyShift_Input/Diet";
//				break;
//			case 27:
//				random = 27;
//				predicted = "PatientIntroduction_Disease/ProblemHistory";
//				break;
//			case 28:
//				random = 28;
//				predicted = "PatientIntroduction_CurrentRoom";
//				break;
//			case 29:
//				random = 29;
//				predicted = "MyShift_ActivitiesOfDailyLiving";
//				break;
//			case 30:
//				random = 30;
//				predicted = "Appointment/Procedure_City";
//				break;
//			case 31:
//				random = 31;
//				predicted = "Appointment/Procedure_Time";
//				break;
//			case 32:
//				random = 32;
//				predicted = "PatientIntroduction_CarePlan";
//				break;
//			case 33:
//				random = 33;
//				predicted = "Medication_Status";
//				break;
//			case 34:
//				random = 34;
//				predicted = "Medication_Dosage";
//				break;
//			case 35:
//				random = 35;
//				predicted = "PatientIntroduction_Ageinyears";
//				break;							
//			default:
//				random = 36;
//				predicted = "NA";
//				break;
//			}
			
//			int random = (int )(Math.random() * 6 + 1);
//			System.out.println("random number: " + random);
//
//			switch (random) {
//			case 1:
//				random = 1;
//				predicted = "Iccco:_Identification_of_the_patient";
//				break;
//			case 2:
//				random = 2;
//				predicted = "iCcco:_Clinical_presentation/history";
//				break;
//			case 3:
//				random = 3;
//				predicted = "icCco:_Clinical_status";
//				break;
//			case 4:
//				random = 4;
//				predicted = "iccCo:_Care_plan";
//				break;
//			case 5:
//				random = 5;
//				predicted = "icccO:_Outcomes_and_goals_of_care";
//				break;
//			default:
//				random = 6;
//				predicted = "NA";
//				break;
//			}
			
			
//			System.out.println(word + " " + lemma + " " + annotated + " " + predicted);
			
			if(cmps.containsKey(annotated)){
				cmps.get(annotated)[i].annotatedSet += 1;
			} else{
				System.out.println(annotated);
				ConfusionMatrix[] cm = new ConfusionMatrix[totalDoc + 1];
				for(int j = 0; j < cm.length; j++){
					cm[j] = new ConfusionMatrix();
				}
				cm[i].annotatedSet = 1;
				cmps.put(annotated, cm);
			}
			if(cmps.containsKey(predicted)){
				cmps.get(predicted)[i].predictionSet += 1;
			} else{
				ConfusionMatrix[] cm = new ConfusionMatrix[totalDoc + 1];
				for(int j = 0; j < cm.length; j++){
					cm[j] = new ConfusionMatrix();
				}
				cm[i].predictionSet = 1;
				cmps.put(predicted, cm);
			}
			
			if(annotated.equals(predicted)) {
				cmps.get(annotated)[i].TP += 1;
				correctTopic += 1;
			}
			else {
				cmps.get(annotated)[i].FP += 1;
				incorrectTopic += 1;
			}	
			
			HashMap<String, Integer> confused = big.get(annotated);
			if(confused!=null){
				if(confused.containsKey(predicted)){
					int temp = confused.get(predicted);
					confused.put(predicted, temp+1);
					big.put(annotated, confused);
				} else{
					confused.put(predicted, 1);
					big.put(annotated, confused);
				}
			} else{
				HashMap<String, Integer> temp = new HashMap<String, Integer>();
				temp.put(predicted, 1);
				big.put(annotated, temp);
			}
		}
		br.close();		
		
	}