我想为每个句子找到一个主语,动词和宾语,然后将其传递给自然语言生成库 simpleNLG 以构成一个句子。
>我尝试了多个库,例如 Cornlp,opennlp,Standford解析器。但是我找不到它们。
现在在最坏的情况下,我将不得不编写一整套if-else来从每个句子中找到主语,动词和宾语,这对于simpleNLG并不总是准确的
喜欢
- NN,nsub等用于主语,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中找到它?还是应该使用if-else?请帮助我。