如何使用nlp java提取主谓宾

如何使用nlp java提取主谓宾,nlp,Nlp,如何在java中使用NLP提取SVO,我是NLP新手。我目前正在使用opennlp。但是如何在java中使用一个特别的in-java语句 LexicalizedParser lp = **new LexicalizedParser("englishPCFG.ser.gz");** String[] sent = { "This", "is", "an", "easy", "sentence", "." }; Tree parse = (Tree) lp.apply(Arrays.asList(s

如何在java中使用NLP提取SVO,我是NLP新手。我目前正在使用opennlp。但是如何在java中使用一个特别的in-java语句

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);
正在获取编译错误 新的词汇化解析器(“englishPCFG.ser.gz”)**
构造函数LexicalizedParser(字符串)未定义

这是来自斯坦福依赖项解析器的代码,而不是来自OpenNLP。遵循斯坦福解析器目录中包含的ParserDemo.java(和/或ParserDemo2.java)中给出的示例,确保演示代码和类路径中的stanford-parser.jar来自相同版本的解析器。我怀疑您正在使用较新版本的解析器和较旧的演示代码。

您可以使用Stanford CoreNLP。检查“粗略算法”的答案,了解如何从句子中获取主谓宾语。

似乎您正在使用新版本的斯坦福NLP解析器。
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);
在这个解析器的新版本中,构造函数不用于分配内存,而是使用专用函数。您可以使用:

LexicalizedParser lp = LexicalizedParser.loadModel("englishPCFG.ser.gz");
您可以使用此API的各种重载


您可以使用混响。检查此处的“混响”答案如何从句子中提取信息

使用textrunner是更好的api