如何使用 NLP Java 提取主题动词对象?每一句话
How to Extract subject Verb Object using NLP Java? for every sentence
我想为每个句子找一个主语宾语然后传给自然语言生成库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?请帮助我。
您可以使用 openie
注释器来获取三元组。您可以在命令行 运行 或使用这些注释器构建管道。
命令:
java -Xmx10g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,depparse,natlog,openie -file example.txt
Java:
Properties props = new Properties();
props.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner,depparse,natlog,openie");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
Annotation result = pipeline.process("...");
输入:
Joe ate some pizza.
输出:
Extracted the following Open IE triples:
1.0 Joe ate pizza
我想为每个句子找一个主语宾语然后传给自然语言生成库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?请帮助我。
您可以使用 openie
注释器来获取三元组。您可以在命令行 运行 或使用这些注释器构建管道。
命令:
java -Xmx10g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,depparse,natlog,openie -file example.txt
Java:
Properties props = new Properties();
props.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner,depparse,natlog,openie");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
Annotation result = pipeline.process("...");
输入:
Joe ate some pizza.
输出:
Extracted the following Open IE triples:
1.0 Joe ate pizza