Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析斯坦福依赖关系_Java_Nlp_Stanford Nlp - Fatal编程技术网

Java 解析斯坦福依赖关系

Java 解析斯坦福依赖关系,java,nlp,stanford-nlp,Java,Nlp,Stanford Nlp,我需要从给定的文本中得到基本关系。我发现 并查看了第一个基本示例: LexicalizedParser lp = LexicalizedParser.loadModel("edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"); TreebankLanguagePack tlp = new PennTreebankLanguagePack(); GrammaticalStructureFactory gsf = tlp.grammatica

我需要从给定的文本中得到基本关系。我发现 并查看了第一个基本示例:

LexicalizedParser lp = LexicalizedParser.loadModel("edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz");

TreebankLanguagePack tlp = new PennTreebankLanguagePack();
GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();

String[] sent = new String[]{"vladimir", "putin", "was", "born", "in", "st.", "petersburg", "and", "he", "was", "not", "born", "in", "berlin", "."};
Tree parse = lp.apply(Sentence.toWordList(sent));
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
Collection<TypedDependency> tdl = gs.typedDependencies();

System.out.println(tdl);
更漂亮的输出:

nn(putin-2, vladimir-1)
nsubjpass(born-4, putin-2)
auxpass(born-4, was-3)
root(ROOT-0, born-4)
prep(born-4, in-5)
nn(petersburg-7, st.-6)
pobj(in-5, petersburg-7)
cc(born-4, and-8)
nsubjpass(born-12, he-9)
auxpass(born-12, was-10)
neg(born-12, not-11)
conj(born-4, born-12)
prep(born-12, in-13)
pobj(in-13, berlin-14)
我现在的问题是:是否已经有一个解析器来解析这些关系? 例如,我想得到“弗拉基米尔·普京”和“圣彼得堡”之间的关系:“出生于”, 因此,我需要以下依赖项:

nn(putin-2, vladimir-1)
nsubjpass(born-4, putin-2)
auxpass(born-4, was-3)
prep(born-4, in-5)
nn(petersburg-7, st.-6)
pobj(in-5, petersburg-7)
所以我有我需要的所有信息。我可以编写一个解析器来返回我 政府名词、关系和从属名词,但如果已经存在 我不需要自己编写解析器


那么还有什么吗?

语义角色标签可能很有用:


它发现了文本跨度与其触发器(如动词)之间的关系

AFAIK,提取关系的问题可以通过使用

  • 选区解析输出上的Tregex(斯坦福依赖项解析器据说遵循此路线)

  • 使用依赖项分析器输出,如stanfrod依赖项分析器。至于解析输出,您可能会找到来自Chris的响应。人员配备有用

  • 使用丹尼尔在回答中指出的语义角色标签

  • 我建议按顺序尝试选项2、1、3

    什么是可变的“句子”?
    nn(putin-2, vladimir-1)
    nsubjpass(born-4, putin-2)
    auxpass(born-4, was-3)
    prep(born-4, in-5)
    nn(petersburg-7, st.-6)
    pobj(in-5, petersburg-7)