public void readLexicon(ID wid,
                            ID tid,
                            HashMap<Integer, ArrayList<Integer>> pTags,
                            HashMap<Integer, ArrayList<Integer>> pWords) {
        String line;
        BufferedReader br = null;

        try {
            br = new BufferedReader(new FileReader(lexicon));

            while ((line = br.readLine()) != null) {
                String tmp[] = line.split(" - ");
                int wordID = wid.getID(tmp[0]);
                pTags.put(wordID, new ArrayList<Integer>());

                for (String s : tmp[1].split(" ")) {
                    int tagID = tid.set(s);

                    if (!pWords.containsKey(tagID)) {
                        pWords.put(tagID, new ArrayList<Integer>());
                    }
                    pWords.get(tagID).add(wordID);
                    pTags.get(wordID).add(tagID);
                }
            }
        } catch (IOException ioe) {
            ioe.printStackTrace();
        } finally {
            try {
                if (br != null) {
                    br.close();
                }
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
        }
    }