public void printConfusionMatrix(List<TaggedToken> taggedTokens){
		
		HashSet<String> generatedTags = getGeneratedTags(taggedTokens);
		HashSet<String> testDataTags = getTestDataTags(taggedTokens); 
		
		String line = "                         ";
		
		for(String generatedTag : generatedTags){
			line += "     " + generatedTag;
		}
		
		output.println("Confusion Matrix:");
		output.println();
		output.println("each line - same tag in data");
		output.println("each column - same tag from tagger");
		output.println();
		output.println(line);
		
		int longestDataTag = 0;
		
		for(String dataTag : testDataTags){
			if (dataTag.length() > longestDataTag) {
				longestDataTag = dataTag.length();
			}
			
		}
		
		for(String dataTag : testDataTags){
									
			line = forceLength(dataTag, longestDataTag + 5);
			
			for(String generatedTag : generatedTags){
				
				int number = 0;
				
				for(TaggedToken token : taggedTokens){
					if((token.generatedTag.equals(generatedTag))
							&& (token.testDataTag.equals(dataTag))){
						
						number++;
					}
				}
				
				String entry = forceLength("" + number, generatedTag.length() + 5); 
				
				line += entry;
				
			}
			
			output.println(line);
			
		}
		
		
	}