пакет corenlp StaggerDemo от stanford

#java #nlp #stanford-nlp

#java #nlp #stanford-nlp

Вопрос:

Я хочу заставить программу автоматически помечать текст в каталоге. Вот мой первый шаг. Я внес небольшое изменение в TaggerDemo.java . Но он работает неправильно, как ожидалось.

 import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;

import edu.stanford.nlp.ling.HasWord;
import edu.stanford.nlp.ling.Sentence;
import edu.stanford.nlp.ling.TaggedWord;
import edu.stanford.nlp.tagger.maxent.MaxentTagger;

class auto{

  public static void main (String[] args) throws Exception{

    MaxentTagger tagger = new MaxentTagger("models/left3words-wsj-0-18.tagger");
    @SuppressWarnings("unchecked")
    List<List<HasWord>> sentences = tagger.tokenizeText(new BufferedReader(new FileReader(args[0])));
    for (List<HasWord> sentence : sentences) {
      ArrayList<TaggedWord> tSentence = tagger.tagSentence(sentence);
      System.out.println(Sentence.listToString(tSentence, false));
    }
  }

}
  

Это ошибка, которую я получил.

 Loading default properties from trained tagger models/left3words-wsj-0-18.tagger
Reading POS tagger model from models/left3words-wsj-0-18.tagger ... done [2.9 sec].
Exception in thread "main" java.io.FileNotFoundException: sample-input.txt (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:106)
    at java.io.FileInputStream.<init>(FileInputStream.java:66)
    at java.io.FileReader.<init>(FileReader.java:41)
    at auto.main(auto.java:17)
  

Почему он говорит, что файл не найден?

Когда я попытался скомпилировать его в terminal, он говорит, что edu.stanford.nlp.ling.* не может быть импортирован…

Большое спасибо.

Комментарии:

1. Как вы запускаете программу? Похоже, что sample-input.txt он просто находится в другом каталоге.

Ответ №1:

Похоже, что у вас нет файла sample-input.txt в текущем каталоге.

Чтобы просмотреть свой текущий каталог, используйте:

 File f = new File(".");
System.out.println(f.getAbsolutePath());
  

Комментарии:

1. большое спасибо… Я только что обнаружил, что при использовании eclipse в ubuntu следует добавить /src, в то время как в Windows просто используйте имя файла напрямую.