Это часть моего кода:
String sentence="My dog also likes eating sausage.";
LexicalizedParser lp = new LexicalizedParser("englishPCFG.ser.gz");
TokenizerFactory tf = PTBTokenizer.factory(false, new WordTokenFactory());
TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
List tokens = tf.getTokenizer(new StringReader(sentence)).tokenize();
lp.parse(tokens); // parse the tokens
Tree t = lp.getBestParse();
Как я могу получить значение предмета (собака)?
Это зависимость, в которой я хотел бы извлечь тему:
nsubj(likes-4, dog-2)
3
user1017014
5 Ноя 2011 в 20:53
1 ответ
Попробуйте что-то вроде этого:
String sentence="My dog also likes eating sausage.";
LexicalizedParser lp = new LexicalizedParser("resources/stanford-parser-2011-06-27/grammar/englishPCFG.ser.gz");
TokenizerFactory tf = PTBTokenizer.factory(false, new WordTokenFactory());
TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
List tokens = tf.getTokenizer(new StringReader(sentence)).tokenize();
lp.parse(tokens); // parse the tokens
Tree t = lp.getBestParse();
TreebankLanguagePack languagePack = new PennTreebankLanguagePack();
GrammaticalStructure structure = languagePack.grammaticalStructureFactory().newGrammaticalStructure(t);
Collection<TypedDependency> typedDependencies = structure.typedDependenciesCollapsed();
for(TypedDependency td : typedDependencies) {
if(td.reln().equals(EnglishGrammaticalRelations.NOMINAL_SUBJECT)) {
System.out.println(td);
}
}
Который напечатает:
nsubj(likes-4, dog-2)
6
Bart Kiers
6 Ноя 2011 в 01:09
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.