我只是不明白为什么以下几行无法编译:
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);
}
}
答案 0 :(得分:4)
这是典型的情况 &#34;你看到的不是你得到的&#34;与众所周知的WYSIWYG相反。
您在src中看到方法setGenerateOriginalDependencies(boolean),但编译器或构建系统没有看到它。
典型情况:
如果方法在外部库(jar)中,那么它还没有构建,或者你忘记刷新(eclipse F5)项目。或者你正在调查错误的项目。或者还没有保存文件等。
或者该方法不再存在,工作的同事可能已将其删除。 在eclipse中,您可以单击包含该方法的jar文件,并检查eclipse看到的内容。
答案 1 :(得分:0)
在eclipse中检查你的Java构建路径(也检查你的Java JDK / JRE!),刷新项目(F5)并执行项目&gt;清理你的项目。