斯坦福 NNDep 解析器:java.lang.ArrayIndexOutOfBoundsException
Stanford NNDep parser: java.lang.ArrayIndexOutOfBoundsException
训练模型后,我正在尝试解析测试树库。不幸的是,这个错误不断出现:
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 次迭代(默认 20000 次在我的 2,33 GHz Core 2 Duo CPU @ 4 Gb RAM 上花费了 15 多个小时——顺便说一句,这样的时间正常吗?) UD 1.2; word embeddings used are these。似乎当使用非英语树库进行训练时会发生此错误(尝试过瑞典语和波兰语 UD;未设置 -tlp
选项,使用 UniversalEnglish
)。
回答我自己的问题,. It turns out that the -embeddingSize
flag is needed also at parsing stage if it was used during training (= other value then the default 50 was used). The documentation 的评论中有提示从未说过,实际上仅指训练阶段的标志,但问题代码中的错误消息实际上隐晦地暗示错误的来源,显示“25”̦,这是使用的词嵌入的维数。
训练模型后,我正在尝试解析测试树库。不幸的是,这个错误不断出现:
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 次迭代(默认 20000 次在我的 2,33 GHz Core 2 Duo CPU @ 4 Gb RAM 上花费了 15 多个小时——顺便说一句,这样的时间正常吗?) UD 1.2; word embeddings used are these。似乎当使用非英语树库进行训练时会发生此错误(尝试过瑞典语和波兰语 UD;未设置 -tlp
选项,使用 UniversalEnglish
)。
回答我自己的问题,-embeddingSize
flag is needed also at parsing stage if it was used during training (= other value then the default 50 was used). The documentation 的评论中有提示从未说过,实际上仅指训练阶段的标志,但问题代码中的错误消息实际上隐晦地暗示错误的来源,显示“25”̦,这是使用的词嵌入的维数。