Исключение Stanford Parser (Typed Dependencee)

Я хочу увидеть выходной формат зависимости в Stanford Parser для NLP. Я скачал файл jar по этой ссылке. http://nlp.stanford.edu/software/lex-parser.shtml

Затем я импортировал его в Eclipse и написал следующий код.

package hammad.NLP;

import java.io.StringReader;
import java.util.Collection;
import java.util.List;

import com.chaoticity.dependensee.Main;

import edu.stanford.nlp.ling.CoreLabel;
import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
import edu.stanford.nlp.process.CoreLabelTokenFactory;
import edu.stanford.nlp.process.PTBTokenizer;
import edu.stanford.nlp.process.TokenizerFactory;
import edu.stanford.nlp.trees.GrammaticalStructure;
import edu.stanford.nlp.trees.GrammaticalStructureFactory;
import edu.stanford.nlp.trees.PennTreebankLanguagePack;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.trees.TreebankLanguagePack;
import edu.stanford.nlp.trees.TypedDependency;

public class Test {
/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub

    try
    {

        String text = "A quick brown fox jumped over the lazy dog.";
        TreebankLanguagePack tlp = new PennTreebankLanguagePack();
        GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
        LexicalizedParser lp = LexicalizedParser.loadModel("C:/Stanford Parser/Java/stanford-parser-full-2015-04-20/stanford-parser-3.5.2-models/edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz");
        lp.setOptionFlags(new String[]{"-maxLength", "500", "-retainTmpSubcategories"});
        TokenizerFactory<CoreLabel> tokenizerFactory =
                PTBTokenizer.factory(new CoreLabelTokenFactory(), "");
        List<CoreLabel> wordList = tokenizerFactory.getTokenizer(new StringReader(text)).tokenize();
        Tree tree = lp.apply(wordList);    
        GrammaticalStructure gs = gsf.newGrammaticalStructure(tree);
        Collection<TypedDependency> tdl = gs.typedDependenciesCCprocessed(true);

        Main.writeImage(tree,tdl, "image.png",3);

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

}

Это дает следующее исключение.

Exception in thread "main" java.lang.NoSuchMethodError: edu.stanford.nlp.trees.TypedDependency.gov()Ledu/stanford/nlp/trees/TreeGraphNode;

Я искал TypedDependency и обнаружил, что в нем существует gov (), но приближается исключение. Я много искал об этом, но не нашел в этом помощи. Буду вам благодарен, если вы мне в этом поможете.


person Hammad Hassan    schedule 01.06.2015    source источник


Ответы (1)


Это связано с несовместимостью между последними выпусками кода Stanford NLP и DependenSee, который был построен против v2.0.5 (2013-04-05) Stanford Parser. Если вы закомментируете строку Main.writeImage(tree,tdl, "image.png",3); и вместо этого просто сделаете System.out.println(tdl);, тогда все будет нормально.

У вас есть варианты: не использовать DependenSee, исправить DependenSee, чтобы он был совместим с недавними выпусками Стэнфордского НЛП (возможно, легко), или перейти на старую версию Стэнфордского НЛП ....

person Christopher Manning    schedule 01.06.2015