private void parseTraining() throws Exception{
		Scanner reader = new Scanner(new File(file));

		while(reader.hasNext()){
			String line = reader.nextLine();
			line = line.substring(0, line.length()-1).trim();
			int split = line.indexOf(" ");


			String knownClass = line.substring(0, split);
			String[] superSub = knownClass.split(":");
			String superClass = superSub[0];
			String subClass = superSub[1];


			String question = line.substring(split+1);

			Annotation a = new Annotation(question);

			pipeline.annotate(a);

			List<CoreMap> sentences = a.get(SentencesAnnotation.class);
			HashMap<String, Double> localWord = new HashMap<String, Double>();
			HashMap<String, Double> localPOS = new HashMap<String, Double>();
			for(CoreMap sentence: sentences) {
				for (CoreLabel token: sentence.get(TokensAnnotation.class)) {
					String word = token.get(TextAnnotation.class).toLowerCase();
					String pos = token.get(PartOfSpeechAnnotation.class).toLowerCase();
					if(!localWord.containsKey(word))
						localWord.put(word, 0.0);
					if(!localPOS.containsKey(pos))
						localPOS.put(pos, 0.0);

					localWord.put(word, localWord.get(word) + 1);
					localPOS.put(pos, localPOS.get(pos) + 1);
				}
			}
			if(!superclassesWord.containsKey(superClass))
				superclassesWord.put(superClass, new TrainedQuestionClass(superClass));
			if(!superclassesPOS.containsKey(superClass))
				superclassesPOS.put(superClass, new TrainedQuestionClass(superClass));
			superclassesWord.get(superClass).addClassExamples(subClass, localWord);
			superclassesPOS.get(superClass).addClassExamples(subClass, localPOS);
		}
	}