从 StanfordNLP 训练关系提取器模型时出现异常

Exception when training relation extractor model from StanfordNLP

我正在尝试针对 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,确实 class 在 jar 中不存在。我正在使用 roth.properties 文件,如顶部 link 中所述,其中包含以下行:

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

我试着注释掉该行,希望代码会选择默认打印机,但它仍然是 RelationExtractorResultsPrinter。

有人成功了吗?

谢谢

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

编译 class