public Word getWordIdentify(int category,Group g){

		LinkedList<Word> targetLex = new LinkedList<Word>();
		double[][] dv = getDistValues(category);
		
		int count=0;
		double max=Double.MIN_VALUE;
		int maxlabel=-1;
		for(Word ww : lexiconCategory[category]) {
			if(dv[count][g.getOtherID()]>0.8D && dv[count][g.getID()]<0.2D) {
				targetLex.add(ww);
			}
			
			if(max < (dv[count][g.getOtherID()]+(1-dv[count][g.getID()]))) {
				max=(dv[count][g.getOtherID()]+(1-dv[count][g.getID()]));
				maxlabel=count;
			}
				
			count++;
		}
		
		//System.out.println("lex-size: "+targetLex.size());
		
		if(targetLex.size()==0) {
			//System.out.println("0 Size for self-group, cycle: #"+cs.p.currentCycle+" cate: "+category);
			if(maxlabel==-1) {
				//System.out.println("-0 Size for self-group-category, cycle: #"+cs.p.currentCycle+" cate: "+category);
				return Word.initialWord(g,category,cs);
			}
				
			return lexiconCategory[category].get(maxlabel);
		}
		
		return targetLex.get(gen.nextInt(targetLex.size()));
	}