private String biGramUnderWord(char word, String spelling) {
		char[] words1 = new char[1];
		words1[0] = word;
		char[] words2 = findWaitingWords(spelling).toCharArray();
		char word1 = ' ';
		char word2 = ' ';
		if(words1.length < 1 || words2.length < 1) {
			System.out.println("spelling Error: biGram()");
			return null;
		}

		int max_i = 0;
		int max_j = 0;
		double maxCount = 0;
		boolean hasChanged= false;
		for(int i = 0; i < words1.length; i++) {
			for(int j = 0; j < words2.length; j++) {
				int row = words_.indexOf(words1[i]);
				int col = words_.indexOf(words2[j]);
				if(row < 0 || col < 0)
					continue;
				int count = phraseCount_[row][col];
				if(count > maxCount) {
					hasChanged = true;
					maxCount = count;
					max_i = i;
					max_j = j;
				}
			}
		}
		if(hasChanged) {
			word1 = words1[max_i];
			word2 = words2[max_j];
		}
		//no matched phrase, so we should choose default word for every spelling, 
		//such as '不' for 'bu', '好' for 'hao', which is studied from training data
		else {
			char[] defaultResult = getDefault(words1, words2).toCharArray();
			word1 = defaultResult[0];
			word2 = defaultResult[1];
		}
		return new String(String.valueOf(word1) + word2);
	}