Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在句子中挑选主语、谓语、宾语和形容词_Java_Nlp_Stanford Nlp - Fatal编程技术网

Java 如何在句子中挑选主语、谓语、宾语和形容词

Java 如何在句子中挑选主语、谓语、宾语和形容词,java,nlp,stanford-nlp,Java,Nlp,Stanford Nlp,我想提取一个句子的主语、谓语和宾语,并用java代码中的Stanford CoreNLP找出哪些形容词指向主语、谓语或宾语 我曾尝试使用依赖项解析器来解决这个问题,方法是找到依赖项索引,检查依赖项标记是否等于amod,然后将其添加到ArrayList中,但使用这种方法,有时形容词的依赖项标记不是amod,而是nmod,可能会出现其他标记 在确定宾语和谓语时,我使用了与上面类似的方法。我已经检查了它是否是det,以及它是否是表示它是谓词或对象的任何其他标记。然而,有时会出现不同的标记,必须解析每个

我想提取一个句子的主语、谓语和宾语,并用java代码中的Stanford CoreNLP找出哪些形容词指向主语、谓语或宾语

我曾尝试使用依赖项解析器来解决这个问题,方法是找到依赖项索引,检查依赖项标记是否等于amod,然后将其添加到ArrayList中,但使用这种方法,有时形容词的依赖项标记不是amod,而是nmod,可能会出现其他标记

在确定宾语和谓语时,我使用了与上面类似的方法。我已经检查了它是否是det,以及它是否是表示它是谓词或对象的任何其他标记。然而,有时会出现不同的标记,必须解析每个标记(这在某种程度上意味着它是指向对象的谓词)是没有效率的

所以我的问题是,如何得到一个句子的主语、谓语和宾语以及每个句子的形容词,而不需要检查每个标记

对于上述尝试,我使用了斯坦福CoreNLP Simple API,但如果确实需要,我可以使用标准API。

您应该尝试使用openie注释器,它将查找主语、谓语、宾语三元组

命令示例:

java -Xmx5g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,depparse,coref,natlog,openie -file basic-example.txt -outputFormat text
例如:

The tall man ate the delicious pizza.
示例输出:

1.0     man     ate     pizza
1.0     man     ate     delicious pizza
1.0     tall man        ate     pizza
1.0     tall man        ate     delicious pizza

在CoreNLP模型中,句子不像“主语、宾语和谓语”那么简单。没有比拥有许多规则来寻找你感兴趣的句型,或者一个经过训练的模型来选择你所关心的树更有效的过程了。有没有一个库可以做到这一点?为什么我们需要14 GB的OpenIE内存?它不应该需要14 GB的内存。如果包含coref annotator,我预计它将使用1-2GB和2-3之间的容量,4GB对于大多数应用程序来说都是非常安全的。我们的整个管道和每个annotator都需要14GB左右的容量,这是我默认设置的,但我确信它的可用容量要少得多。