public static Mention buildCurrentMessage(String tag, int startToken,
			int endToken, ArrayList<String> sent, int is) {
		Mention.Builder m = Mention.newBuilder();
		m.setStart(startToken);
		m.setEnd(endToken);
		for (int i = 0; i < sent.size(); i++) {
			String[] items = sent.get(i).split("\t");
			m.addTokens(items[0]);
		}
		String[] posTags = pos.toString().split("\n")[is].split(" ");
		for (int i = 0; i < sent.size(); i++) {
			m.addPosTags(posTags[i]);
		}
		m.setEntityName(tag);
		m.setFileid(filePrefix+"\t"+is);
		m.setSentid(sentId);

		// dependency
		{
			String depStr = dep.toString().split("\n")[is];
			if (depStr != null) {
				for (String d : depStr.split("\t")) {
					Matcher match = depPattern.matcher(d);
					if (match.find()) {
						m.addDeps(Dependency.newBuilder()
								.setType(match.group(1))
								.setGov(Integer.parseInt(match.group(3)) - 1)
								.setDep(Integer.parseInt(match.group(5)) - 1)
								.build());
					} else {

					}
				}
			}
		}

		// features
		{
			ArrayList<String> features = new ArrayList<String>();
			nerFeature.extract(m.build(), features);
			m.addAllFeatures(features);
		}

		try {
			m.build().writeDelimitedTo(outputStream);
			count++;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return m.build();
	}