Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Eclipse中设置OpenNLP模型二进制文件路径?_Java_Eclipse_Nlp_Opennlp - Fatal编程技术网

Java 如何在Eclipse中设置OpenNLP模型二进制文件路径?

Java 如何在Eclipse中设置OpenNLP模型二进制文件路径?,java,eclipse,nlp,opennlp,Java,Eclipse,Nlp,Opennlp,我已经从下载了二进制模型文件,但我不知道如何设置路径。我正在使用Eclipse,我尝试将这些二进制文件添加到我的项目路径中 import opennlp.tools.sentdetect.SentenceDetectorME; import opennlp.tools.sentdetect.SentenceModel; import opennlp.tools.util.InvalidFormatException; import java.io.FileInputStream; import

我已经从下载了二进制模型文件,但我不知道如何设置路径。我正在使用Eclipse,我尝试将这些二进制文件添加到我的项目路径中

import opennlp.tools.sentdetect.SentenceDetectorME;
import opennlp.tools.sentdetect.SentenceModel;
import opennlp.tools.util.InvalidFormatException;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;


public class OpenNlpTest {

public static void SentenceDetect() throws InvalidFormatException,
IOException {
String paragraph = "Hi. How are you? This is Mike.";

// always start with a model, a model is learned from training data
InputStream is = new FileInputStream("en-sent.bin");
SentenceModel model = new SentenceModel(is);
SentenceDetectorME sdetector = new SentenceDetectorME(model);

String sentences[] = sdetector.sentDetect(paragraph);

System.out.println(sentences[0]);
System.out.println(sentences[1]);
is.close();

}
public static void main(String []z){

    try {
        SentenceDetect();
    } catch (InvalidFormatException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}
这是我试图运行的代码,但它给出了以下错误

java.io.FileNotFoundException: en-sent.bin (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at OpenNlpTest.SentenceDetect(OpenNlpTest.java:17)
at OpenNlpTest.main(OpenNlpTest.java:31)
java.io.FileNotFoundException:en-sent.bin(系统找不到指定的文件)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(未知源)
位于java.io.FileInputStream。(未知源)
在OpenNlpTest.SentenceDetect(OpenNlpTest.java:17)
在OpenNlpTest.main(OpenNlpTest.java:31)
这是我刚刚开始的项目的层次结构

正如您看到的那样

java.io.FileNotFoundException:de-sent.bin(系统找不到指定的文件)

您尚未添加必要的依赖库。在您提供的链接中有一个名为de-sent.bin的bin。您必须将其添加到库路径中

我找到了解决办法


基本上,我给出的是文件的绝对路径,而不是相对路径。

正如您所看到的,项目上有一个红色指示灯。只需查看错误控制台中显示的错误即可。我解决了该错误,它表示其中一个存档或ZIP已损坏。我从文件夹中删除了该ZIP,现在没有红色感叹号,但仍然是我得到的相同输出。[这对我有帮助,谢谢,我应该想到另一种搜索方式][1][1]:然后将其作为答案发布并接受它。您可以随时回答您的问题。底部将有一个“回答您的问题”按钮,但我想使用“en sent.bin”是英文版的ie模型文件,因此我只添加了这个bin文件。您可以检查是否有一个名为“language”的列“最起码,我以前也试过,但也有同样的例外。事实上,我认为我没有给出正确的路径,如果你能帮我解决这个问题,那就太好了,我已经添加了OPENNPL_HOME,并给出了我保存所有bin文件的目录路径。它仍然不起作用。设置路径后,您是否重新启动了eclipse。如果不重新启动eclipse,可能是因为它引用了旧值。非常抱歉,我错误地发布了问题。当我尝试使用de-sent.bin时,它会给出与使用en-sent.bin时相同的错误,相同的异常!嗯,这不是一个好的解决方案,因为它不能在其他环境中扩展。