public void parserThreeGram() throws Exception {
		Connection conn = JDBC.createConnection();
		Ngram ngram;
		int count = 0;
		Token pre = new Token(null, null);
		String preWordWithAttr = null;
		

		while (list != null) {

			preWordWithAttr = null;
			count = 0;
			for (int i = 0; i < list.size(); i++) {
				current = list.get(i);

				if (current.getKind() == Token.Kind.TOKEN_WORD) {
					if (pre.getKind() == Token.Kind.TOKEN_ATTRIBUTE) {
						if (preWordWithAttr != null) {
						
							if(count== 2){
								
								String attrWithWord[] = preWordWithAttr.split("_");
								ngram = new Ngram();
								ngram.setWordAttribute(attrWithWord[0] + "_" +
										attrWithWord[2] + "_"
										+ pre.getContent());
								ngram.setWordGroup(attrWithWord[1] + "_" +
										attrWithWord[3] + "_"
										+ current.getContent());

								service.addNgrambyup(conn, ngram);
								preWordWithAttr = attrWithWord[2] + "_" + attrWithWord[3] +
										"_" +pre.getContent() + "_" + current.getContent();
							}else if(count == 1){
								count++;
								preWordWithAttr = preWordWithAttr + "_" + pre.getContent() + "_" + current.getContent();
							}
							

						} else {
							preWordWithAttr = pre.getContent() + "_"
									+ current.getContent();
							count++;
						}
					} else if (current.getKind() == Token.Kind.TOKEN_OTHERS
							|| current.getKind() == Token.Kind.TOKEN_PUNCTION) {
						preWordWithAttr = null;
						count = 0;
					}
				}

				pre = current;

			}
			list = null;
			list = lexer.nextTokenList();
		}

		// service.batchAddNgram(listAfterHandle);
		JDBC.close(conn);
		System.out.println("add is done");
		// service.deleteNgram();
	}