如何使用nlp java提取主题动词对象

时间:2012-07-23 04:26:53

标签: nlp

如何在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)未定义

4 个答案:

答案 0 :(得分:2)

好像您正在使用新版本的Stanford NLP解析器。 在这个解析器的新版本中,构造函数不用于分配内存,而是使用专用函数。你可以使用:

LexicalizedParser lp = LexicalizedParser.loadModel("englishPCFG.ser.gz");

您可以使用此API的各种重载。

Stanford documentation for various overloads of loadModel

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以使用Stanford CoreNLP。检查答案here以获取“粗略算法”如何从句子中获取主谓词对象。

答案 3 :(得分:0)

您可以使用混响。在这里查看答案“reVerb”如何从句子中提取信息