0

我正在尝试使用 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)

我一点也不知道为什么会发生这种情况......它在这里说 0.0.0-SNAPSHOT 版本的 OpenNLP 永远不会无法加载任何模型。

到目前为止,我无法找到有关此错误的任何其他信息。这可能是我对进口所做的事情?还是我正在使用的模型(我从 OpenNLP 网站下载的 --- 找不到任何其他版本)?无论如何,我不知道出了什么问题......

任何想法或帮助将不胜感激。

附加信息:我在 Ubuntu 12.04 上使用 OpenNLP 1.5.2 孵化和 1.5 模型(项目网站说它应该完全兼容)。而且我不确定这是否有任何意义,但我正在使用 Eclipse Indigo。

4

1 回答 1

1

一个这样的错误 ( OPENNLP-406) 仅 1.5.2-incubating. 但是您的问题可能是类路径问题。OpenNLP 从opennlp.version类路径中某处的文件中获取其版本。您可能没有或只有一个这样的文件,这会使 OpenNLP 感到困惑。

于 2012-11-30T00:06:57.487 回答