在 Java 中使用 POSTagger 将不同的 POS(词性)保存在不同的文件中?

Save different POS (parts of speech) in different file using POSTagger in Java?

我正在使用 openNLP 来标记 POS(词性)。

InputStream inputStream = new 
             FileInputStream("C:/en-pos-maxent.bin"); 
          POSModel model = new POSModel(inputStream);

          POSTaggerME tagger = new POSTaggerME(model);



    String sentence = "This is not a song for the broken-hearted" + 
            " No silent prayer for the faith-departed " + 
            " I am not gonna be just a face in the crowd " + 
            " You are gonna hear my voice " +
            " When I shout it out loud";

    String simple = "[.?!-]";      
      String[] splitString = (sentence.split(simple));     


      SimpleTokenizer simpleTokenizer = SimpleTokenizer.INSTANCE;

      //String tokens[] = simpleTokenizer.tokenize();



      for(int i = 0;i<splitString.length;i++)
      {
          String tokens[] = simpleTokenizer.tokenize(splitString[i]);


          String[] tags = tagger.tag(tokens);

          //POSSample sample = new POSSample(tokens, tags);

          /*for(String token : tokens) {         
              System.out.println(token);  
           }*/



         for(int j= 0;j < tags.length;j++)
          {
              if(tags[j].equals("DT"))
              {
                  //System.out.println(tokens[j]);

                  File file = new File("DT.txt");

                  try {

                      PrintWriter output = new PrintWriter(file);
                      output.println(tokens[j]);
                      output.close();

                } catch (Exception e) {
                    // TODO: handle exception
                }

当我在 loop.It 中使用 println 时,在我将其保存在文件名 DT.txt 中时显示所需的 value.But 。它只是在文本文件中保存一个值。 Text file output Printed Output in console

您正在为 for 循环的每个 运行 创建一个新文件。在 for 循环之外创建文件。