当前位置: 首页 > 知识库问答 >
问题:

用Stanford解析器(CoreNLP)查找短语头

端木高卓
2023-03-14

我将使用Stanford Corenlp 2013来查找短语头。我看到了这根线。

但是,答案对我来说并不清楚,我不能添加任何评论来继续这个帖子。所以,我很抱歉重复。

也许,值得说的是,我需要一个java代码中的名词短语的头部。

共有1个答案

端木安国
2023-03-14

因为我不能评论柴坦尼亚的回答,所以在这里补充更多。

Stanford CoreNLP套件实现了Collins head finder启发式和语义head finder启发式,其形式为

  1. CollinSheadFinder
  2. ModCollinSheadFinder
  3. SemantiCheadFinder
Tree tree = sentence.get(TreeCoreAnnotations.TreeAnnotation.class);
headFinder.determineHead(tree).pennPrint(out);

这里有一个简单的dfs,它可以让你提取句子中所有名词短语的中心词

public static void dfs(Tree node, Tree parent, HeadFinder headFinder) {
      if (node == null || node.isLeaf()) {
         return;
      }
      //if node is a NP - Get the terminal nodes to get the words in the NP      
      if(node.value().equals("NP") ) {

         System.out.println(" Noun Phrase is ");
         List<Tree> leaves = node.getLeaves();

         for(Tree leaf : leaves) {
            System.out.print(leaf.toString()+" ");

         }
         System.out.println();

         System.out.println(" Head string is ");
         System.out.println(node.headTerminal(headFinder, parent));

    }

    for(Tree child : node.children()) {
         dfs(child, node, headFinder);
    }

 }
 类似资料:
  • 例如,对于一个句子,如果它包含名词短语(X)和动词短语(Y),我想用CoreNLP分析X和Y,然后将X和Y分别转化为变量。 你知道怎么做吗?

  • 因此,我最近一直在使用NLP,但除了/test/这样非常简单的匹配之外,我在使用它们的regex语法时遇到了麻烦。我正在寻找的最终游戏是匹配在其内容的某个地方包含特定单词的短语。我试图建模的语音模式是非常结构化的,但因为人类的语音是可变的,短语可以以无数种方式开始,但只要短语包含特定的关键词,我就想计算它。作为一个例子,我试图用TokensRegex建模的regex是: 对我来说,从他们的文档中看

  • 问题内容: 我是Stanford CoreNLP工具包的新手,正在尝试将其用于解决新闻文本中的共同引用的项目。为了使用Stanford CoreNLP共参考系统,我们通常会创建一个管道,该管道需要标记化,句子拆分,词性标记,词缀化,命名实体识别和解析。例如: 然后,我们可以使用以下命令轻松获得句子注释: 但是,我使用其他工具进行预处理,只需要一个独立的共指解析系统。创建标记并解析树注释并将它们设置

  • 我正在使用斯坦福的CoreNLP工具,特别是德语的选区解析器。我在命令行工作。 这是我使用的命令: 然后我得到了以下内容: