我正在尝试使用OpenNLP尝试手册中的样本(第一次使用它)。
出于某种原因:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import opennlp.tools.sentdetect.SentenceDetectorME;
import opennlp.tools.sentdetect.SentenceModel;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
//-------------------------------------------------------------Check for input text file.
if(args == null){
System.out.print("hello");
}
//------------------------------------------------------------------Main algorithm
else {
InputStream modelIn = null;
SentenceModel model = null;
try {
modelIn = new FileInputStream("./src/train/en-sent.bin");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
try {
model = new SentenceModel(modelIn);
}
catch (IOException e) {
e.printStackTrace();
}
finally {
if (modelIn != null) {
try {
modelIn.close();
}
catch (IOException e) {
}
}
}
SentenceDetectorME sentenceDetector = new SentenceDetectorME(model);
String sentences[] = sentenceDetector.sentDetect(" First sentence. Second sentence. ");
System.out.print(sentences[0]);
}
}
}
收到错误:
opennlp.tools.util.InvalidFormatException: Model version 1.5.0 is not supported by this (0.0.0-SNAPSHOT) version of OpenNLP!
at opennlp.tools.util.model.BaseModel.validateArtifactMap(BaseModel.java:235)
at opennlp.tools.sentdetect.SentenceModel.validateArtifactMap(SentenceModel.java:78)
at opennlp.tools.util.model.BaseModel.<init>(BaseModel.java:142)
at opennlp.tools.sentdetect.SentenceModel.<init>(SentenceModel.java:73)
at Main.main(Main.java:34)
我没有丝毫想到为什么会这样...... 它说here 0.0.0-SNAPSHOT版本的OpenNLP应该永远不会加载任何模型。
到目前为止,我还无法找到有关此错误的任何其他信息。这可能是我对进口做的事情?或者我正在使用的模型(我是从OpenNLP网站下载的---找不到任何其他版本)?无论如何,我不知道出了什么问题......
任何想法或帮助都将不胜感激。
其他信息:我在Ubuntu 12.04上使用OpenNLP 1.5.2孵化和1.5模型(项目网站说它应该完全兼容)。 而且我不确定这是否有任何意义,但我正在使用Eclipse Indigo。
答案 0 :(得分:1)
其中一个错误(OPENNLP-406
)仅在 1.5.2-incubating
后修复。但是您的问题可能是类路径问题。 OpenNLP从类路径中的某个文件opennlp.version
获取其版本。您可能没有或多个这样的文件,令OpenNLP感到困惑。