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

StanfordNLP Openie失败

庾兴发
2023-03-14

我的maven依赖结构如下:

<dependency>
    <groupId>edu.stanford.nlp</groupId>
    <artifactId>stanford-corenlp</artifactId>
    <version>3.6.0</version>
</dependency>
<dependency>
    <groupId>edu.stanford.nlp</groupId>
    <artifactId>stanford-corenlp</artifactId>
    <version>3.6.0</version>
    <classifier>models</classifier>
</dependency>

我的代码运行良好,如下所示:

@Test
public void testTA() throws Exception
{

    Path p = Paths.get("s.txt");

    byte[] encoded = Files.readAllBytes(p);
    String s = new String(encoded);

    Properties props = new Properties();
    props.setProperty("annotators", "tokenize, ssplit, pos, lemma, parse, ner, dcoref");
    StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

    // read some text in the text variable
    String text = s;

    StringBuffer sb = new StringBuffer();

    sb.append(text);
    sb.append(
            "\n\n\n\n\n\n\n===================================================================\n\n\n\n\n\n\n\n\n\n\n");

    // create an empty Annotation just with the given text
    Annotation document = new Annotation(text);

    // run all Annotators on this text
    pipeline.annotate(document);

    // these are all the sentences in this document
    // a CoreMap is essentially a Map that uses class objects as keys and
    // has values with custom types
    List<CoreMap> sentences = document.get(SentencesAnnotation.class);

    sb.append(
            "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n+++++++++++++++++++++++SENTENCES++++++++++++++++++++++++++++\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
    for (CoreMap sentence : sentences)
    {
        // traversing the words in the current sentence
        // a CoreLabel is a CoreMap with additional token-specific methods
        sb.append("\n\n\n==============SENTENCE==============\n\n\n");
        sb.append(sentence.toString());
        sb.append("\n");
        for (CoreLabel token : sentence.get(TokensAnnotation.class))
        {
            // this is the text of the token
            sb.append("\n==============TOKEN==============\n");
            String word = token.get(TextAnnotation.class);
            sb.append(word);
            sb.append(" : ");
            // this is the POS tag of the token
            String pos = token.get(PartOfSpeechAnnotation.class);
            // this is the NER label of the token
            sb.append(pos);
            sb.append(" : ");
            String lemma = token.get(LemmaAnnotation.class);
            sb.append(lemma);
            sb.append(" : ");
            String ne = token.get(NamedEntityTagAnnotation.class);
            sb.append(ne);
            sb.append("\n");

        }

        // this is the parse tree of the current sentence
        Tree tree = sentence.get(TreeAnnotation.class);
        sb.append("\n\n\n=====================TREE==================\n\n\n");
        sb.append(tree.toString());

        // this is the Stanford dependency graph of the current sentence
        SemanticGraph dependencies = sentence.get(CollapsedCCProcessedDependenciesAnnotation.class);
        sb.append("\n\n\n");
        sb.append(dependencies.toString());
    }

但是,当我将openie添加到管道中时,代码失败了。

有人能在这方面给我建议吗?

共有1个答案

束作人
2023-03-14

答案是管道中的注释器可以相互依赖。只需将natlog添加到管道中。至关重要的是,必须首先添加依赖项,所以

  • natlog必须在openie之前在管道中。
  • depparse必须在natlog之前在管道中

顺便说一句,

    null
 类似资料:
  • 我尝试运行这个gradle任务(通过gradlew) 它使用cucmber jvm 并收到此错误 当我从cmd中的同一路径运行同一行时: 更新1: 这个cmd在shell控制台中工作: ./构建/发行版/WebLarge测试/bin/WebLargeTests-f html:构建/报告/cucumber/-f json:构建/报告/cucumber/report.json--胶水com.waze.

  • 在两台不同的笔记本电脑上使用maven构建相同的项目。一个是运行良好,一个是显示错误。 状态:两个系统的配置相同。 使用的命令:mvn clean install-DskipTests=true 错误: 我什至尝试删除所有内容,例如再次创建. m2文件夹。

  • 问题内容: 我的程序使用该类(系统偏好设置,而不是用户)将加密的产品密钥数据保存到计算机。问题是,在Windows和Linux上(尚未在OSX上进行测试,但可能是相同的),如果我不使用具有管理员权限的程序运行该程序,则在尝试读取或读取该程序时,它将发出异常或警告。保存数据。 显然,要求用户以“管理员”权限运行程序是不切实际的。理想情况下,我希望操作系统请求用户许可。 这很愚蠢,并且消除了的一半目的

  • 问题内容: 当我使用getFromLocationName调用时,我得到一个IOException,描述为“ grpc failed”。 运行的代码 错误的控制台输出: Android SDK版本(API级别):25 Android Studio插件是最新的。 提前致谢! 编辑: 问题现在似乎已经解决,这是我的解决方案。 问题答案: 更新: 该问题现在似乎已解决。我不确定问题是否就此解决了,因此,

  • 我写了一个方便的屏幕键盘模块,当我在电脑上编写打算以平板模式运行的程序时,我可以导入和使用它。因为我想在未来的许多程序中导入和使用这个实用程序,我想存储当前鼠标位置和在模块开始时鼠标可见性状态,然后在模块退出时恢复那些条件。mouse.get_pos()命令工作正常,但是.mouse.get_visible()命令失败,返回错误消息:AtiniteError:模块'pygame.mouse'没有属

  • 我正在尝试构建我的Android应用程序与Gradle在控制台。但关于任务“:app:TransformClasseSandResourcesWithProGuardForRelease”的获取以下错误: ./gradlew构建--堆栈跟踪 这是我收到的例外情况:

  • “:App:TransformClassesWithDexForDebug”。>com.android.build.transform.api.transformException:当我在studio项目中添加Facebook最新SDK时 Android Studio TransformException:错误:任务“:app:TransformClassesWithDexForDebug”执行失