训练模型后,我试图解析测试树库。不幸的是,这个错误不断出现:
Loading depparse model file: nndep.model.txt.gz ...
###################
#Transitions: 77
#Labels: 38
ROOTLABEL: root
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 25
at edu.stanford.nlp.parser.nndep.Classifier.preCompute(Classifier.java:663)
at edu.stanford.nlp.parser.nndep.Classifier.preCompute(Classifier.java:637)
at edu.stanford.nlp.parser.nndep.DependencyParser.initialize(DependencyParser.java:1151)
at edu.stanford.nlp.parser.nndep.DependencyParser.loadModelFile(DependencyParser.java:589)
at edu.stanford.nlp.parser.nndep.DependencyParser.loadModelFile(DependencyParser.java:493)
at edu.stanford.nlp.parser.nndep.DependencyParser.main(DependencyParser.java:1245)
如果使用随NLP包附带的预训练英语模型,则不会出现该错误。因此,训练有素的模型可能有问题吗?但是,在训练期间没有错误。 500次迭代完成(我的2,33 GHz Core 2 Duo CPU @ 4 Gb RAM默认20000需要15个小时 - 顺便说一下这么多时间正常吗?)火车,开发和测试集是{{3} };使用的单词嵌入是UD 1.2。似乎在使用非英语树库进行培训时发生此错误(尝试使用瑞典语和波兰语UD; -tlp
选项未设置,使用UniversalEnglish
)。
答案 0 :(得分:2)
通过@Jon Gauthier的评论提示,回答我自己的问题。事实证明,如果在训练期间使用了,那么在解析阶段也需要 (=其他值,然后使用默认值50)。 documentation从来没有说过,实际上只是引用了关于训练阶段的标志,但是问题代码中的错误信息实际上隐含地暗示了错误的起源,显示“25”̦使用的嵌入词的维度。