我需要從給定的文本中獲取基本關係。我發現 斯坦福依賴性,看着第一個基本的例子:解析斯坦福大學的依賴關係
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)
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)
所以我有我需要的所有信息。我可以寫一個解析器,它返回給我治理名詞,關係和dependet名詞,但如果已經有一個解析器我不需要寫我自己的。
那麼有沒有?
變量「Sentence」是什麼? – user2372074