Stanford nlp 用节点存储引理生成斯坦福语义图

Stanford nlp 用节点存储引理生成斯坦福语义图,stanford-nlp,Stanford Nlp,我试图生成一个语义图,并使用semgrex查找特定节点。 我想使用引理作为semgrex中的节点属性之一。我在这里看到了一个相关的问题和答案: 有人提到 确保节点正在存储引理-请参阅CoreNLP的引理注释器(目前仅适用于英语) 我可以使用当前管道生成所需的注释以生成语义图 Properties props = new Properties(); props.put("annotators", "tokenize, ssplit, pos, lemma, parse"); Stanfor

我试图生成一个语义图,并使用semgrex查找特定节点。 我想使用引理作为semgrex中的节点属性之一。我在这里看到了一个相关的问题和答案:

有人提到

确保节点正在存储引理-请参阅CoreNLP的引理注释器(目前仅适用于英语)

我可以使用当前管道生成所需的注释以生成语义图

 Properties props = new Properties();
 props.put("annotators", "tokenize, ssplit, pos, lemma, parse");
 StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
但是,在搜索相关信息后,我在此处仅找到一个不推荐使用的函数:

这似乎是从最新的coreNLP中删除的


有人能给出一些关于如何生成包含存储引理的节点的语义图的提示吗。引理将存储在解析注释器生成的语义图中。您可以在通过pipeline.Annotation运行文本后检索图形,方法是:

语句.getSemanticGraphCoreAnnotations.BasicDependenceAnnotation.class

或者,折叠式和折叠式处理依赖项的等效项。看见请注意,这些附加到句子核心图,而不是文档注释


然后可以像往常一样在图形上运行Semgrex;e、 例如,{lemma:/foo/}>arctype{lemma:/bar/}。

非常感谢您的回答。它起作用了。我可以再问一个问题吗?我试图通过props.putparse.originalDependencies,true;使用斯坦福依赖项而不是通用依赖项;。但是,它仍然将通用依赖项作为输出提供给我。我遗漏了什么?
public static SemanticGraph generateDependencies(Tree tree,
    boolean collapse,
    boolean ccProcess,
    boolean includeExtras,
    boolean lemmatize,
    boolean threadSafe) {
  SemanticGraph deps = SemanticGraphFactory.makeFromTree(tree, collapse, ccProcess, includeExtras, lemmatize, threadSafe);
  return deps;
}