该方法未定义类型错误

时间:2015-11-11 16:31:13

标签: java

我只是不明白为什么以下几行无法编译:

TreebankLanguagePack tlp = new PennTreebankLanguagePack();
tlp.setGenerateOriginalDependencies(true);

之前它已经开始工作了,但现在却抛出了一个

  

方法setGenerateOriginalDependencies(boolean)未定义   类型TreebankLanguagePack

,虽然TreebankLanguagePack被标记为正确的interface。 我删除了所有内容并将这个最小的课程放在一起,但它仍然不起作用。

import java.util.Collection;

import edu.stanford.nlp.ling.Sentence;
import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
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 TreebankTest {

    public void test() {
        LexicalizedParser lp = LexicalizedParser.loadModel(
                "edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz",
                "-maxLength", "80", "-retainTmpSubcategories");
        TreebankLanguagePack tlp = new PennTreebankLanguagePack();
        tlp.setGenerateOriginalDependencies(true);
        GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();

        String[] sent = { "This", "is", "an", "easy", "sentence", "." };
        Tree parse = lp.apply(Sentence.toWordList(sent));
        GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
        Collection<TypedDependency> tdl = gs.typedDependenciesCCprocessed();
        System.out.println(tdl);
    }

}

2 个答案:

答案 0 :(得分:4)

这是典型的情况 &#34;你看到的不是你得到的&#34;与众所周知的WYSIWYG相反。

您在src中看到方法setGenerateOriginalDependencies(boolean),但编译器或构建系统没有看到它。 典型情况:
如果方法在外部库(jar)中,那么它还没有构建,或者你忘记刷新(eclipse F5)项目。或者你正在调查错误的项目。或者还没有保存文件等。

或者该方法不再存在,工作的同事可能已将其删除。 在eclipse中,您可以单击包含该方法的jar文件,并检查eclipse看到的内容。

答案 1 :(得分:0)

在eclipse中检查你的Java构建路径(也检查你的Java JDK / JRE!),刷新项目(F5)并执行项目&gt;清理你的项目。