private List<Map<Integer, Double>> getMaxTermsByTopics(ParallelTopicModel LDA, int limit) {
		Alphabet alphabet = LDA.getAlphabet();
        List<Map<Integer, Double>> topicList = new ArrayList<Map<Integer, Double>>();
    	int numTopics = LDA.getNumTopics();
    	List<TreeSet<IDSorter>> sortedWords = LDA.getSortedWords();
    	for (int topic = 0; topic < numTopics; ++topic) {
    		Map<Integer, Double> termList = new LinkedHashMap<Integer, Double>();
    		TreeSet<IDSorter> topicWords = sortedWords.get(topic);
    		//int i = 0;
    		double weightSum = 0.0;
    		for (IDSorter entry : topicWords) {
    			if (entry.getWeight() > 0.0) { // TODO
    				//if (i++ < limit) { // TODO
    					int tag = Integer.parseInt(alphabet.lookupObject(entry.getID()).toString());
    					termList.put(tag, entry.getWeight());
    					weightSum += entry.getWeight();
    				//} else {
    				//	break;
    				//}
    			}
    		}
    		// relative values
    		//double relSum = 0.0;
    		for (Map.Entry<Integer, Double> entry : termList.entrySet()) {
    			//relSum += (entry.getValue() / weightSum);
    			entry.setValue(entry.getValue() / weightSum);
    		}
    		//System.out.println("RelSum: " + relSum);
    		topicList.add(termList);
    	}  	
    	return topicList;
	}