public void loadtfidf(LinkedHashMap<String, Ngram> orderedGrams) { HashMap<String, Double> idf = ic.getIdfCollection(); for (String s : orderedGrams.keySet()) { // defining size of ngrams to be counted, used with idfs for special // ngram size Ngram temp = orderedGrams.get(s); if (config.prop.containsKey("extractSize")) { if (idf.containsKey(s)) { temp.setSingleTfidf(idf.get(s) * temp.frequency); } else { temp.setSingleTfidf(0.1 * temp.frequency); } } else { // when size of ngram not defined we count each word // separately for (int i = 0; i < temp.gram.length; i++) { if (idf.containsKey(temp.gram[i])) { temp.tfidf[i] += idf.get(temp.gram[i]) * temp.frequency; } else { temp.tfidf[i] += 0.1 * temp.frequency; } } } } }