マニュアルのサンプルを 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)
なぜこれが起こっているのか、私には少しもわかりません...ここでは、OpenNLP の 0.0.0-SNAPSHOT バージョンがモデルの読み込みに失敗することは決してないと言っています。
これまでのところ、このエラーに関する他の情報を見つけることができませんでした。それはおそらく私が輸入品でしたことですか?または私が使用しているモデル(OpenNLP Webサイトからダウンロードしました---他のバージョンが見つかりませんでした)?とはいえ、何が悪いのかわからない…
アイデアや助けをいただければ幸いです。
追加情報: Ubuntu 12.04 で OpenNLP 1.5.2 のインキュベーションと 1.5 モデル (プロジェクトの Web サイトによると、完全に互換性があるはずです) を使用しています。これに意味があるかどうかはわかりませんが、Eclipse Indigo を使用しています。