Я пытаюсь извлечь словосочетания из предложений. Я использую библиотеку opennlp "en-parser-chunking.bin".
пример кода:
ArrayList<opennlp.tools.parser.Parse> nounPhrases = new ArrayList<>();
searchmethod("what is the nickname of the British flag?");
for(int t =0; t<50; t++)
{
str= text.get(t);
InputStream is = new FileInputStream("en-parser-chunking.bin");
ParserModel model = new ParserModel(is);
opennlp.tools.parser.Parser parser = ParserFactory.create(model);
opennlp.tools.parser.Parse[] topParses = ParserTool.parseLine(str, parser, 1);
for (opennlp.tools.parser.Parse p : topParses){
p.show();
if (p.getType().equals("NP")) {
nounPhrases.add(p);
}
}
}
С этим кодом я получаю следующий результат:
(TOP (S (NP (NP (DT The) (NN nickname)) (PP (IN for) (NP (DT the) (JJ British) (NN flag)))) (VP (VBZ is) (NP (NP (DT the) (NNP Union) (NNP Jack.)) (SBAR (IN Although) (S (NP (PRP it)) (VP (VBZ is) (ADVP (RB only) (RB correctly)) (VP (VBN known) (PP (IN as) (NP (DT this) (NN when) (NN flown))) (PP (IN on) (NP (DT a) (NN ship.)))))))))))
Как я могу извлечь из этого результата словосочетания с существительными?
Любая помощь будет принята с благодарностью.