public List<Keyword> getKeywords(Graph graph) {
        List<Keyword> keywords = new ArrayList<Keyword>();
        Map<String, Double> keys = new TreeMap<String, Double>();

        for (Node node : graph.values()) {
            keywords.add(new Keyword(node.getKey(), node.getRank()));
        }
        Collections.sort(keywords);
        System.out.println("DBG SIZE1 " + keywords.size());
        for (Keyword k : keywords) {
            System.out.println("DBG " + k.getValue() + " " + k.getRank());
        }
        //int lim = (int) (keywords.size() * 0.15);
        int lim = keywords.size() / (int) (keywords.size() * 0.05);

        for (int i = 0; i < lim; i++) {
            keys.put(keywords.get(i).getValue(), keywords.get(i).getRank());
        }
        System.out.println("DBG SIZE2 " + keys.size());
        for (String key : keys.keySet()) {
            System.out.println("\tDBG KEYS " + key + " " + keys.get(key));
        }

        keywords.clear();

        for (Sentence sentence : sentences) {
            //List<Keyword> kl = sentence.getCollocations(language, keys);
            List<Keyword> kl = sentence.getCollocations2(language, keys);
            keywords.addAll(kl);
        }
        // Delete equals elements
        List<Keyword> ans = new ArrayList<Keyword>();
        for (int i = 0; i < keywords.size(); i++) {
//            System.out.println("DBG " + keywordHandleList.get(i).getValue());
            boolean eq = false;
            for (int j = i + 1; j < keywords.size(); j++) {
                if (keywords.get(i).getValue().trim().equals(keywords.get(j).getValue().trim())) {
                    eq = true;
                    break;
                }
            }
            if (!eq) {
                ans.add(keywords.get(i));
            }
        }
        Collections.sort(ans);
        return ans;
    }