java - 如何使用Stanford NLP Parser获取 "Grammatical Relation"?

标签 java stanford-nlp

我对 Java 开发完全是新手。

有人可以详细说明如何使用斯坦福大学的自然语言处理词法解析器(开源 Java 代码)获取“语法关系”吗?

谢谢!

最佳答案

参见 my code to run the Stanford Parser programmatically 中第一个文件的第 88 行

GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
Collection tdl = gs.typedDependenciesCollapsed();

System.out.println("words: "+words); 
System.out.println("POStags: "+tags); 
System.out.println("stemmedWordsAndTags: "+stems); 
System.out.println("typedDependencies: "+tdl); 

集合 tdl 是这些类型化依赖项的列表。如果你看javadoc for TypedDependency您会发现使用 .reln() 方法可以获得语法关系。

我的代码中第三个文件的第 311-318 行显示了如何使用类型化依赖项列表。我碰巧得到了关系的名称,但你也可以得到关系本身,它属于 GrammaticalRelation 类。

for( Iterator<TypedDependency> iter = tdl.iterator(); iter.hasNext(); ) {
    TypedDependency var = iter.next();

    TreeGraphNode dep = var.dep();
    TreeGraphNode gov = var.gov();

    // All useful information for a node in the tree
    String reln = var.reln().getShortName();

别难过,我花了一两天的痛苦试图弄清楚如何使用解析器。我不知道文档是否有所改进,但是当我使用它时,它们非常糟糕。

关于java - 如何使用Stanford NLP Parser获取 "Grammatical Relation"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10412611/

相关文章:

java - Java中字符串转int

java - 在处理中制作随机矩形

python - 为什么在逐行导入文本文件进行情感分析而不是使用硬编码的句子时会出现类型错误?

python - 在 Spacy 中从 Glove 加载矢量时出错

machine-learning - 方面提取的监督学习方法

java - 初始化 Java 程序并监听查询

java - Java中有 "pointers"或 "unsafe code"的概念吗?

java - makeToast 无法在另一个类中解析

java - 避免一组java注解一起使用

python - NLTK 和 Stanford Dependency Parser - 如何获得单词位置?