@Override
	public Sentence doProcess(Sentence st) {
		String prevTag = null;
		boolean changed = false;
		
		Eojeol[] eojeolSet = st.getEojeols();
		
		for (int i = 0; i < eojeolSet.length; i++) {
			String[] tags = eojeolSet[i].getTags();
			prevTag = "";
			changed = false;
			
			for (int j = 0; j < tags.length; j++) {
				tags[j] = TagMapper.getKaistTagOnLevel(tags[j], TAG_LEVEL);
				
				if (tags[j].equals(prevTag)) {
					changed = true;
				}
				prevTag = tags[j];
			}
			
			if (changed) {
				tagList.clear();
				morphemeList.clear();
				String[] morphemes = eojeolSet[i].getMorphemes();
				
				for (int j = 0; j < tags.length - 1; j++) {
					if (tags[j].equals(tags[j+1])) {
						morphemes[j+1] = morphemes[j] + morphemes[j+1];
					} else {
						tagList.add(tags[j]);
						morphemeList.add(morphemes[j]);
					}
				}
				tagList.add(tags[tags.length - 1]);
				morphemeList.add(morphemes[morphemes.length - 1]);
			
				eojeolSet[i] = new Eojeol(morphemeList.toArray(new String[0]), tagList.toArray(new String[0]));
			}
		}
		st.setEojeols(eojeolSet);
		
		return st;
	}