首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StanfordNLP OpenIE 4错误

StanfordNLP OpenIE 4错误
EN

Stack Overflow用户
提问于 2016-12-07 14:59:33
回答 1查看 98关注 0票数 1

我遇到了这个错误:

我运行了OpenIE 4.1二进制文件,但得到了以下错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.NullPointerException at 
com.googlecode.clearnlp.tokenization.EnglishTokenizer.protec‌​tEmoticons
(EnglishTokenizer.java:335) at 
com.googlecode.clearnlp.tokenization.EnglishTokenizer.getTok‌​enList(En 
glishTokenizer.java:109) at 
com.googlecode.clearnlp.tokenization.AbstractTokenizer.getTo‌​kens(AbstractTokenizer.java:58) at 
edu.knowitall.tool.tokenize.ClearTokenizer.tokenize(ClearTok‌​enizer.sc ala:22) 

我查了几个消息来源,找到了杨瑞的评论,他过去也有过这个问题。但没有解决办法。我检查了openie.4.1.jar文件,com.googlecode.clearnlp.tokenization.EnglishTokenizer.protectEmoticon就存在了。

希望有人能帮我弄清楚这件事。提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-07 06:53:43

我已经解决了这个错误。问题在于我从官方网站下载的OpenIE 4.0JAR和OpenIE 4.1JAR文件的编译。(http://knowitall.github.io/openie/)。

怎么解决?自己编译这些类。

  1. 转到https://github.com/knowitall/openie/releases
  2. 选择一个释放。(我选择了4.1.3)
  3. 下载zip文件并解压缩该文件。
  4. 使用终端并重定向到文件夹目录。
  5. 运行'sbt包‘,它将开始编译。
  6. 最后一个JAR文件将在目标folder/scala-2.10/{openie-assembly-VERSION.jar}中找到。

注意:如果将OpenIE作为依赖项运行,则可能需要对代码进行一些更改。测试代码如下:

代码语言:javascript
复制
    OpenIE openIE = new OpenIE(new ClearParser(new ClearPostagger(new ClearTokenizer())), new ClearSrl(), false, false);

    Seq<Instance> extractions = openIE.extract("Obama is the president of the United States");
    Iterator<Instance> iterator = extractions.iterator();
    while (iterator.hasNext()) {
        Instance inst = iterator.next();
        StringBuilder sb = new StringBuilder();
         sb.append(inst.confidence()).append("\t\t")
         .append(inst.extr().arg1().text()).append("\t\t")
         .append(inst.extr().rel().text()).append("\t\t");

        Iterator<Argument> argIter = inst.extr().arg2s().iterator();
        while (argIter.hasNext()) {
            Part arg = argIter.next();
            sb.append(arg.text()).append("; ");
        }
         System.out.println(sb.toString());
    }

我希望这能对将来的人有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41020725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档