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

如何从CoreNLPParser中提取短语?

佘修为
2023-03-14

看到截图了吗

从图像解析器中可以看到,它返回NP,VP,PP,NP。我希望能够访问不同深度的所有短语。例如,in depth=1有两个短语NP和VP,in depth=2有一些其他短语,in depth=3有一些其他短语。如何使用python访问属于depth=n的短语?

共有1个答案

罗伟兆
2023-03-14
package edu.stanford.nlp.examples;

import edu.stanford.nlp.pipeline.*;
import edu.stanford.nlp.trees.*;

import java.util.*;
import java.util.stream.*;

public class ConstituencyParserExample {

    public static void main(String[] args) {
        String text = "The little lamb climbed the big mountain.";
        // set up pipeline properties
        Properties props = new Properties();
        // set the list of annotators to run
        props.setProperty("annotators", "tokenize,ssplit,pos,lemma,parse");
        // build pipeline
        StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
        // create a document object
        CoreDocument document = new CoreDocument(text);
        // annnotate the document
        pipeline.annotate(document);
        int maxDepth = 5;
        for (CoreSentence sentence : document.sentences()) {
            Set<Constituent> constituents = sentence.constituencyParse().constituents(
                    new LabeledScoredConstituentFactory(), maxDepth).stream().filter(
                            x -> x.label().value().equals("NP")).collect(Collectors.toSet());
            for (Constituent constituent : constituents) {
                System.out.println("---");
                System.out.println("label: "+constituent.label().value());
                System.out.println(sentence.tokens().subList(constituent.start(), constituent.end()+1));
            }
        }
    }
}
 类似资料:
  • 我试图用NLTK从句子中提取介词短语。有没有一种方法可以让我自动做到这一点(例如,向函数输入一个句子,然后返回它的介词短语)? 这里的例子似乎要求你先从语法开始,然后才能得到解析树。我能自动获取语法并使用它来获取解析树吗? 显然,我可以标记一个句子,挑出介词和后面的名词,但当介词补语是复合词时,这很复杂。

  • 问题内容: 我正在使用ADFA- LD数据集进行基于主机的入侵检测项目,现在正在进行特征提取模块。我构建了由长度为4的系统调用短语组成的短语词典。现在,为了进行特征提取,我需要将这些短语与新的系统调用轨迹进行比较(以下是一些示例): 。 我需要的是,如何将这些短语与新痕迹进行比较。我在用Java做。 我的短语字典: sys_socketcall-sys_poll-sys_clock_gettime

  • 我是新的Python和nltk。我已经将代码从https://gist.github.com/alexbowe/879414转换为下面给定的代码,使其运行于许多文档/文本块。但我得到了以下错误 有人能帮我解决这个问题吗。我必须从数以百万计的产品评论中提取名词短语。我使用了使用Java的Standford NLP工具包,但速度非常慢,所以我认为在python中使用nltk会更好。如果有更好的解决方案

  • 在斯坦福解析器的文档中,给出了以下示例语句: 印度官员今天表示,印度有史以来最强的降雨导致金融中心孟买关闭,通讯线路中断,机场关闭,数千人被迫在办公室睡觉或在夜间步行回家。 这会产生解析树: [ROOT[S[NP[NP[DT The][JJS stress][NN rain][VP[ADVP[RB ever][VBN recorded][PP[IN IN][NP[NNP India]]]][VP[

  • 问题内容: 我有一个网页,可以用来上传文件。 现在,我需要检查文件类型是否正确(zip,jpg,pdf,…)。 我可以使用请求随附的mimeType,但我不信任用户,并且说我想确保没有人能够上传在.jpg中重命名的.gif文件。 我认为在这种情况下,我应该检查魔术号码。我发现 这是一个Java库,似乎可以实现“从魔术数字中提取模仿类型”的功能。 这是正确的解决方案还是您建议什么? 更新: 我已经找

  • 问题内容: 我向Jenkins添加了SSH凭据。 不幸的是,我忘记了SSH密码,现在想从位于的Jenkins凭据档案中获取它。 该XML文档似乎已使用XML标记或加密了凭据。 如何获取明文密码? 问题答案: 通过访问来打开Jenkins安装的脚本控制台。 在那里,执行以下Groovy脚本: 您要寻找的或XML元素的加密内容在哪里。