Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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
Parsing 如何从Stanford Parser NLP获取想要的节点?_Parsing_Nodes_Stanford Nlp - Fatal编程技术网

Parsing 如何从Stanford Parser NLP获取想要的节点?

Parsing 如何从Stanford Parser NLP获取想要的节点?,parsing,nodes,stanford-nlp,Parsing,Nodes,Stanford Nlp,我的主要问题是我不知道如何从语法结构中提取节点。 我正在java netbeans中使用englishPCFG.ser。 我的目标是了解屏幕的质量,如: iPhone4的屏幕很棒 我想提取屏幕和伟大的。 如何提取NN(屏幕)和VP(很棒) 我写的代码是: LexicalizedParser lp = new LexicalizedParser("C:\\englishPCFG.ser"); lp.setOptionFlags(new String[]{"-maxLength", "80", "-

我的主要问题是我不知道如何从语法结构中提取节点。 我正在java netbeans中使用englishPCFG.ser。 我的目标是了解屏幕的质量,如:

iPhone4的屏幕很棒

我想提取屏幕和伟大的。 如何提取NN(屏幕)和VP(很棒)

我写的代码是:

LexicalizedParser lp = new LexicalizedParser("C:\\englishPCFG.ser");
lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"});

String sent ="the screen is very good.";
Tree parse = (Tree) lp.apply(Arrays.asList(sent));
parse.pennPrint();
System.out.println();

TreebankLanguagePack tlp = new PennTreebankLanguagePack();
GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
Collection tdl = gs.typedDependenciesCollapsed();

集合
tdl
是类型依赖项的列表。对于这句话,它包含:

det(screen-2, the-1)
nsubj(great-7, screen-2)
amod(4-5, iphone-4)
prep_of(screen-2, 4-5)
cop(great-7, is-6)
(您可以通过尝试看到这一点)

因此,您想要的依赖项,
nsubj(great-7,screen-2)
就在该列表中<代码>nsubj表示“屏幕”是“伟大”的主题


依赖项的集合只是一个集合(列表)。为了进行更复杂的进一步处理,人们通常希望将依赖项生成一个可以进行各种搜索和遍历的图形结构。有多种方法可以做到这一点。我们经常使用(jgrapht)[http://www.jgrapht.org/]图书馆。但这就是你自己编写的代码。

我有没有办法在一个句子中查找关系?在这种情况下,我可以搜索例如amod吗?或者我需要拿到relns然后检查是否有amod?