Я хочу найти субъект, глагол и объект для каждого предложения, а затем он будет передан в библиотеку генерации естественного языка simpleNLG для формирования предложения.
Я пробовал несколько библиотек, таких как Cornlp, opennlp, Standford парсеры . Но я не могу их точно найти.
Теперь в худшем случае мне придется написать длинный набор if-else, чтобы найти предмет, глагол и объект из каждого предложения, что не всегда точно для simpleNLG
как,
- NN, nsub et c идет к предмету, VB, VBZ идет к глаголу.
Я пробовал лексический парсер ,
LexicalizedParser lp = **new LexicalizedParser("englishPCFG.ser.gz");**
String[] sent = { "This", "is", "an", "easy", "sentence", "." };
Tree parse = (Tree) lp.apply(Arrays.asList(sent));
parse.pennPrint();
System.out.println();
TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
tp.print(parse);
, который дает этот вывод,
nsubj(use-2, I-1)
root(ROOT-0, use-2)
det(parser-4, a-3)
dobj(use-2, parser-4)
И я хочу что-то вроде этого
subject = I
verb = use
det = a
object = parser
Есть ли более простой способ найти это в JAVA или я должен go с if-else? пожалуйста, помогите мне с этим.