5

如何在 Java 中使用 NLP 提取 SVO,我是 nlp 的新手。我目前正在使用 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);

在 new LexicalizedParser("englishPCFG.ser.gz");** 得到一个编译错误,构造函数 LexicalizedParser(String) 未定义

4

4 回答 4

2

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

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

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

各种 loadModel 重载的斯坦福文档

于 2013-02-05T10:07:55.687 回答
0

你可以使用斯坦福 CoreNLP。在此处查看“粗略算法”的答案,了解如何从句子中获取主谓宾。

于 2012-07-25T08:33:21.290 回答
0

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

于 2012-07-23T12:51:48.483 回答
0

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

于 2013-06-05T08:15:36.550 回答