【问题标题】:Exception when training relation extractor model from StanfordNLP从 StanfordNLP 训练关系提取器模型时出现异常
【发布时间】:2015-03-26 04:29:17
【问题描述】:

我正在尝试为来自 StanfordNLP 的关系提取器功能训练我自己的模型,如下所述:http://nlp.stanford.edu/software/relationExtractor.shtml。问题是,当我开始培训时,出现以下异常:

PERCENTAGE OF TRAIN: 1.0
The reader log level is set to SEVERE
Adding annotator pos
Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [1.0 sec].
Adding annotator lemma
Adding annotator parse
Loading parser from serialized file edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz ...done [0.9 sec].
Mar 25, 2015 9:23:36 PM edu.stanford.nlp.ie.machinereading.MachineReading makeResultsPrinters
INFO: Making result printers from
Mar 25, 2015 9:23:36 PM edu.stanford.nlp.ie.machinereading.MachineReading makeResultsPrinters
INFO: Making result printers from edu.stanford.nlp.ie.machinereading.RelationExtractorResultsPrinter
Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: edu.stanford.nlp.ie.machinereading.RelationExtractorResultsPrinter
        at edu.stanford.nlp.ie.machinereading.MachineReading.makeResultsPrinters(MachineReading.java:771)
        at edu.stanford.nlp.ie.machinereading.MachineReading.makeResultsPrinters(MachineReading.java:756)
        at edu.stanford.nlp.ie.machinereading.MachineReading.makeMachineReading(MachineReading.java:235)
        at edu.stanford.nlp.ie.machinereading.MachineReading.main(MachineReading.java:106)
Caused by: java.lang.ClassNotFoundException: edu.stanford.nlp.ie.machinereading.RelationExtractorResultsPrinter
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at edu.stanford.nlp.ie.machinereading.MachineReading.makeResultsPrinters(MachineReading.java:768)
        ... 3 more

我正在使用 StanfordNLP 3.5.1 并且确实该类在 jar 中不存在。我正在使用顶部链接中描述的 roth.properties 文件,其中包含以下行:

relationResultsPrinters = edu.stanford.nlp.ie.machinereading.RelationExtractorResultsPrinter

我尝试注释掉该行,希望代码能够使用默认打印机,但它仍然是 RelationExtractorResultsPrinter。

有人搞定了吗?

谢谢

【问题讨论】:

    标签: stanford-nlp


    【解决方案1】:

    这绝对是我们的错!这个类将包含在下一个版本中。现在,您可以从source distribution (GitHub link) 编译该类。

    【讨论】:

    • 你的意思是用来自 github 的所有源代码自己构建 jar?或者你对那门课有别的想法?
    • 我认为他的意思是自己建造罐子。 nlp.stanford.edu/software/basic-compiling.txt
    • 链接中的说明不完整,因为在您解压到 scr 文件夹后没有 build.xml 可供使用。我从 Github 获得了一个,但是您需要其他工件,例如 commonbuildjsp.xml 和 test 文件夹等。再一次,您的意思是从 github 下载源代码还是有另一种更快的方法?
    • 最快的方法(未经测试,但应该可以):从我的链接下载 .java 文件并将其放入解压缩的 src 文件夹(使用 Sonal 发布的说明创建)。然后在单个下载的.java文件上运行javac;确保 CoreNLP 发行版中的所有 .jar 文件都在您的类路径中。然后将生成的.class 移动到.jar
    • 这有点麻烦,对不起!我们将在不到一个月的时间内发布另一个版本,其中将解决此问题。
    猜你喜欢
    • 2022-06-22
    • 2020-06-22
    • 2022-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    相关资源
    最近更新 更多