public Levenshtein(double[][] confusionMatrix) {
	this.confusionMatrix = confusionMatrix;
	
	dictionaryMap = new HashMap<Character, Integer>();
	
	for (int i = 0; i < dictionaryCharacters.length(); i++) {
		char aCharacter = dictionaryCharacters.charAt(i);
		dictionaryMap.put(aCharacter, i);
	}
	for (int i = 0; i < 256; i ++) {
		char aCharacter = (char) i;
		Integer inYet = dictionaryMap.get(aCharacter);
		if (inYet == null) dictionaryMap.put(aCharacter, 70);
		if (i > 64 & i < 91) dictionaryMap.put(aCharacter, i - 65);
	}
	
	textInsertable = new boolean[256][71];
	dictInsertable = new boolean[256][71];
	for (int t = 0; t < 256; ++t) {
		for (int d = 0; d < 71; ++d) {
			textInsertable[t][d] = false;
			dictInsertable[t][d] = false;
		}
	}
	for (String insertion : textInsertions) {
		int t = (int) insertion.charAt(3);
		int d = dictcharToCode(insertion.charAt(0));
		textInsertable[t][d] = true;
	}
	for (String insertion : dictInsertions) {
		int t = (int) insertion.charAt(3);
		int d = dictcharToCode(insertion.charAt(1));
		dictInsertable[t][d] = true;
	}
	
	substitutionsCounted = new int[256][71];
	insertionsCounted = new HashMap<String, Integer>();
}