public List<List<Word>> loadFile(File file) throws IOException {
        sentenceList = new ArrayList<List<Word>>();
        List<Word> sentence = new ArrayList<Word>();
        Word root = new Word("0", "ROOT", "ROOT", "ROOT", "ROOT", "ROOT", "0", "ROOT", "0", "ROOT");

        Word curWord;

        sentence.add(root);

        int sentenceCount = 0;
        int lineCount = 0;
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
        String line = null;
        while ((line = reader.readLine()) != null) {
            lineCount++;
            curWord = makeWord(line);
            if (curWord != null) { // A word
                sentence.add(curWord);
            } else { // An empty line denoting a new sentence
                sentenceList.add(sentence);
                sentence = new ArrayList<Word>();
                sentence.add(new Word(root));
                sentenceCount++;
            }
            if ((lineCount % 10000) == 0) {
                System.out.println("Read: " + lineCount + " lines, " + sentenceCount + " sentences.");
            }
        }
        reader.close();
        return sentenceList;
    }