2015-10-21 72 views
0

我訓練OpenNLP NER-模型來檢測一個新的實體,但是當我使用這個模式,我遇到以下異常:爲什麼自我訓練的NER模型與OpenNLP版本不兼容?

Exception in thread "main" java.lang.IllegalArgumentException: 
opennlp.tools.util.InvalidFormatException: 
    Model version 1.6.0 is not supported by this (1.5.3) version of OpenNLP! 

我使用OpenNLP 1.6.0版本和我的源代碼是這樣的:

String [] sentences = Fragmentation.getSentences(Document); 
InputStream modelIn = new FileInputStream("Models/en-ner-cvskill.bin"); 
TokenNameFinderModel model = new TokenNameFinderModel(modelIn); 
NameFinderME nameFinder = new NameFinderME(model); 
String[] tokens = null; 
Span nameSpans[] = null; 
int i=0; 
for (String sentence : sentences) { 
    tokens = null; 
    nameSpans = null; 

    System.out.println("Sentences: "+(++i)+"\n" + sentence); 
    tokens = Fragmentation.getTokens(sentence); 
    for(String token: tokens){ 
      System.out.println("Token:-------------------: "+token); 
    } 
    nameSpans = nameFinder.find(tokens); 
    String SkillName = Arrays.toString(Span.spansToStrings(nameSpans, tokens)); 
    for(Span name:nameSpans){ 
      System.out.println("Skills: "+ name.toString()); 
    } 

    System.out.println("Names-------------------:"+SkillName); 
} 
nameFinder.clearAdaptiveData();      

請人幫我解決這個問題..

回答

0

我已經FINDE出了問題.. 其實我opennlp 1.6.0的訓練和的NameFinder使用這是不possib相同的版本中使用opennlp的當前版本(1.6.0)。 現在我訓練了opennlp 1.5.3的模型,並且使用opennlp 1.6.0,它工作的很好!