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,提取关系的问题可以通过使用
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)