如何在java中使用NLP提取SVO,我是nlp.i的新手,目前正在使用opennlp。但是如何在java中用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);
获取编译错误 新的LexicalizedParser(“englishPCFG.ser.gz”); ** 构造函数LexicalizedParser(String)未定义
答案 0 :(得分:2)
好像您正在使用新版本的Stanford NLP解析器。 在这个解析器的新版本中,构造函数不用于分配内存,而是使用专用函数。你可以使用:
LexicalizedParser lp = LexicalizedParser.loadModel("englishPCFG.ser.gz");
您可以使用此API的各种重载。
答案 1 :(得分:0)
这是来自Stanford依赖解析器的代码,而不是来自OpenNLP的代码。按照包含在stanford-parser目录中的ParserDemo.java(和/或ParserDemo2.java)中给出的示例,确保您的类路径中的演示代码和stanford-parser.jar来自同一版本的解析器。我怀疑您使用的是较新版本的解析器和较旧的演示代码。
答案 2 :(得分:0)
您可以使用Stanford CoreNLP。检查答案here以获取“粗略算法”如何从句子中获取主谓词对象。
答案 3 :(得分:0)
您可以使用混响。在这里查看答案“reVerb”如何从句子中提取信息