public void addWord(Word w) {
		double[] simSum = new double[5];
		double[][] center = new double[5][3];
		//find most similar group
		for(int i=0;i<5;i++) {
			simSum[i]=0D;
			for(int cc=0;cc<3;cc++)
				center[i][cc]=0D;
			double count=0D;
			for(Word lw : lexiconCategory[i]) {
				simSum[i]+=lw.getSimilarity(w);
				count+=1D;
				for(int cc=0;cc<3;cc++)
					center[i][cc]+=lw.getSound()[cc];
			}
			
			simSum[i]/=count;
			for(int cc=0;cc<3;cc++)
				center[i][cc]/=count;
		}
		
		double maxxx = Double.MAX_VALUE;
		int mark=-1;
		for(int i=0;i<5;i++) {
			
			if(simSum[i]<maxxx) {
				maxxx=simSum[i];
				mark=i;
			}
		}
		Word PMEword = new Word(w,center[mark],cs);
		//add to category, delete oldest if no storage space
		if(lexiconCategory[mark].size()<storeSize) {
			lexiconCategory[mark].add(PMEword);
		}
		else {
			lexiconCategory[mark].removeFirst();
			lexiconCategory[mark].add(PMEword);
		}
	}