Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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
在stanfordcorenlp中使用依赖解析器_Nlp_Stanford Nlp - Fatal编程技术网

在stanfordcorenlp中使用依赖解析器

在stanfordcorenlp中使用依赖解析器,nlp,stanford-nlp,Nlp,Stanford Nlp,我使用stanfordcorenlp()来解析句子并提取单词之间的依赖关系 我已经在提供的链接中创建了依赖关系图,如示例中所示,但我不知道如何使用它。我可以使用toString()方法打印整个图形,但我遇到的问题是,在图形中搜索某些单词的方法,例如getChildList,需要一个IndexedWord对象作为参数。现在,很清楚为什么会这样做,因为图的节点是IndexedWord类型的,但我不清楚如何创建这样一个对象来搜索特定的节点 例如:我想找到表示句子中“问题”一词的节点的子节点。如何创建表

我使用stanfordcorenlp()来解析句子并提取单词之间的依赖关系

我已经在提供的链接中创建了依赖关系图,如示例中所示,但我不知道如何使用它。我可以使用
toString()
方法打印整个图形,但我遇到的问题是,在图形中搜索某些单词的方法,例如
getChildList
,需要一个IndexedWord对象作为参数。现在,很清楚为什么会这样做,因为图的节点是IndexedWord类型的,但我不清楚如何创建这样一个对象来搜索特定的节点


例如:我想找到表示句子中“问题”一词的节点的子节点。如何创建表示“问题”一词的IndexWord对象,以便在图形中搜索它?

一般来说,您不应该创建自己的IndexedWord对象。(它们用于表示“单词标记”,即文本中的特定单词,而不是“单词类型”,因此询问“问题”一词(单词类型)实际上是无效的;特别是,一个句子可能有多个这种单词类型的标记。)

有几种方便的方法可以让您随心所欲:

  • sg.getNodeByWordPattern(字符串模式)
  • sg.getAllNodesByWordPattern(字符串模式)
第一个有点危险,因为它只返回与模式匹配的第一个IndexedWord,如果没有,则返回null。但这是你最直接的要求

其他一些方法包括:

  • sg.getFirstRoot()来查找图的(第一个,通常是唯一的)根,然后从那里向下导航,例如使用sg.getChildren(root)方法
  • sg.vertexSet()获取图形中的所有IndexWord对象
  • getNodeByIndex(int),如果您已经知道输入的句子,因此可以通过它们的整数索引请求单词
通常,这些方法会让您遍历节点。真的,前两个得到…节点。。。方法只是为您进行迭代