protected Set<Integer>[] findPossableTag(Sentence list) {
		@SuppressWarnings({ "unchecked" })
		Set<Integer>[] sets = new HashSet[list.size() - 2];
		// 首先添加词典里面可能有的标签
		Cell cell;
		Word word;
		Set<Integer> set;

		for (int i = 1; i < list.size() - 1; i++) {
			cell = list.get(i);
			word = getWord(cell);
			if (word != null) {
				set=word.tags.keySet();
				set.addAll(word.tags.keySet());
			} else {
				set = new HashSet<Integer>();
			}
			//guess the tag
			if(set.isEmpty()){
				for (Integer tag : tagMap.keySet()) {
					if (tag == ergate.core.Tag.TagMapper
							.tag2I(ergate.core.Tag.ST)
							|| tag == ergate.core.Tag.TagMapper
									.tag2I(ergate.core.Tag.SE))
						continue;
					set.add(tag);
				}
			}
			sets[i - 1] = set;
		}
		return sets;
	}