数组与空白reult

时间:2017-06-07 13:54:10

标签: java arrays hash nlp

为什么可以毫无问题地执行我的代码,它会给我正确的结果。

    package com.opennlp.demo;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashSet;
import java.util.Set;

import opennlp.tools.cmdline.parser.ParserTool;
import opennlp.tools.parser.Parse;
import opennlp.tools.parser.Parser;
import opennlp.tools.parser.ParserFactory;
import opennlp.tools.parser.ParserModel;

public class ParserTest {

    public static Set<String> nounPhrases = new HashSet<>();



    private static String line = "I need a PHP note if";

    public void getNounPhrases(Parse p) {
        if (p.getType().equals("NN") || p.getType().equals("NNS") || p.getType().equals("NNP") || p.getType().equals("NNPS")) {
             nounPhrases.add(p.getCoveredText());
             //System.out.println(p.getCoveredText());
        }



        for (Parse child : p.getChildren()) {
             getNounPhrases(child);
             System.out.println(child.toString()+"lol");
        }
    }


    public void parserAction() throws Exception {
        InputStream is = new FileInputStream("en-parser-chunking.bin");
        ParserModel model = new ParserModel(is);
        Parser parser = ParserFactory.create(model);
        Parse topParses[] = ParserTool.parseLine(line, parser, 1);
        for (Parse p : topParses){
            //p.show();
            getNounPhrases(p);
        }
    }

    public static void main(String[] args) throws Exception {
          new ParserTest().parserAction();
          System.out.println("List of Noun Parse : "+nounPhrases);

         }


}

下面是我的第二个代码..它在console中给了我一个空白数组。我从上面的类中删除了main方法,我试图在另一个类中打印nounPhrases。它显示一个空白数组。我想在第二个代码中我的parserAction方法没有执行。如何在没有其他类的主方法的情况下执行该方法?

我的第二个代码

    package com.opennlp.demo;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashSet;
import java.util.Set;

import opennlp.tools.cmdline.parser.ParserTool;
import opennlp.tools.parser.Parse;
import opennlp.tools.parser.Parser;
import opennlp.tools.parser.ParserFactory;
import opennlp.tools.parser.ParserModel;

public class ParserTest {

    public static Set<String> nounPhrases = new HashSet<>();


    //private static String line = "i need a Java book which has JSP also";

    private static String line = "I need a PHP note if";

    public void getNounPhrases(Parse p) {
        if (p.getType().equals("NN") || p.getType().equals("NNS") || p.getType().equals("NNP") || p.getType().equals("NNPS")) {
             nounPhrases.add(p.getCoveredText());
             //System.out.println(p.getCoveredText());
        }



        for (Parse child : p.getChildren()) {
             getNounPhrases(child);
             System.out.println(child.toString()+"lol");
        }
    }


    public void parserAction() throws Exception {
        InputStream is = new FileInputStream("en-parser-chunking.bin");
        ParserModel model = new ParserModel(is);
        Parser parser = ParserFactory.create(model);
        Parse topParses[] = ParserTool.parseLine(line, parser, 1);
        for (Parse p : topParses){
            //p.show();
            getNounPhrases(p);
        }
    }




}

我在下面的另一个类中调用了nounPhrases。但它显示了一个空白的结果。如何解决这个问题?我需要在没有这个类的主方法的情况下这样做。

ParserTest pt = new ParserTest();

                    pt.parserAction();

                    System.out.println(ParserTest.nounPhrases);

0 个答案:

没有答案