Utilizando Stanford CoreNLP

Estoy tratando de moverme con el Stanford CoreNLP. Utilicé un código de la web para comprender lo que está sucediendo con la herramienta de coreferencia. Intenté ejecutar el proyecto en Eclipse pero sigo encontrando una excepción de falta de memoria. Traté de aumentar el tamaño del montón pero no hay ninguna diferencia. ¿Alguna idea de por qué esto sigue sucediendo? ¿Es este un problema específico del código? Cualquier dirección de uso de CoreNLP sería increíble.

EDIT - Código agregado

import edu.stanford.nlp.dcoref.CorefChain;
import edu.stanford.nlp.dcoref.CorefCoreAnnotations;
import edu.stanford.nlp.pipeline.Annotation;
import edu.stanford.nlp.pipeline.StanfordCoreNLP;


import java.util.Iterator;
import java.util.Map;
import java.util.Properties;


public class testmain {

    public static void main(String[] args) {

        String text = "Viki is a smart boy. He knows a lot of things.";
        Annotation document = new Annotation(text);
        Properties props = new Properties();
        props.put("annotators", "tokenize, ssplit, pos, parse, dcoref");
        StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
        pipeline.annotate(document);


        Map<Integer, CorefChain> graph = document.get(CorefCoreAnnotations.CorefChainAnnotation.class);



        Iterator<Integer> itr = graph.keySet().iterator();

        while (itr.hasNext()) {

             String key = itr.next().toString();

             String value = graph.get(key).toString();

             System.out.println(key + " " + value);      
        }

   }
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta