2017-01-12 2 views
0

я начинаю работать над NLP проектом, как новичок, и я должен был добавить en-sent.bin файл для запуска метода приводится ниже,Получения FileNotFoundException в проекте NLP

public static void SentenceDetect() { 

     try { 

      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(); 
     } catch (InvalidFormatException e) { 

      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

я следующая ошибка приходит в Intellij,

java.io.FileNotFoundException: en-sent.bin (No such file or directory) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(FileInputStream.java:195) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at java.io.FileInputStream.<init>(FileInputStream.java:93) 
    at com.nlp.processor.MyNlp.SentenceDetect(MyNlp.java:22) 
    at com.nlp.processor.MyNlp.main(MyNlp.java:42) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 

Этот вопрос я поставил en-sent.bin в проекте, рисунок ниже.

enter image description here

Я добавил файлы из IntelliJ -> Модули -> Зависимости -> Selected над Project SDK и добавлены файлы с помощью (+) знак, JAR or Directories. Рисунок ниже.

enter image description here

Как решить эту FileNotFoundException в проекте?

Обновленный рисунок проекта:

enter image description here

+0

Мое предположение, 'en-sent.bin' больше не является« файлом », а является встроенным ресурсом (содержащимся в контексте приложения/jar), попробуйте вместо этого использовать класс # getResourceAsStream. – MadProgrammer

+0

Не работает' Исключение в теме "main" java.lang.IllegalArgumentException: in не должно быть null! 'и получить эту ошибку в проекте. – Arefe

ответ

0

Поместите ан-sent.bin параллельно папке Src, он должен работать.

Или укажите абсолютный путь - вместо относительного пути.

+0

Он по-прежнему не работает, я представил обновленную фигуру проекта. – Arefe

+0

Вы положили внутри libs, я упомянул, что он должен быть параллелен src. что означает, что ваш проект NlpProcessor должен содержать следующее сразу внутри него: .idea, libs, src, en-sent.bin, target –

+0

плюс, он не имеет ничего общего с NLP - проблема с чтением файла. Пожалуйста, переформулируйте свой вопрос. –