当我尝试在另一个servlet类中调用parserAction()方法时,我得到一个空白数组。我不能打印我的servlet中的名词。但是在这个类中使用MAIN METHOD名词数组正确打印。这是什么原因?
package com.books.servlet;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashSet;
import java.util.Set;
import com.sun.corba.se.impl.orb.ParserAction;
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<>();
public String line = "I need the java book";
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);
}
}
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);
}
}
下面是我的示例servlet类。它显示了一个带[]
的空白数组 public class test extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
.......
.......
.......
ParserTest pt = new ParserTest();
pt.parserAction();
System.out.println("List of Noun Parse : "+pt.nounPhrases);
System.out.println("List of Noun Parse : "+ParserTest.nounPhrases);
}
}
这里我需要在不执行main方法的情况下提取名词。因为我正在开发一个Web应用程序。我需要在我的一个servlet类中显示这些提取的名词。
答案 0 :(得分:0)
您需要在响应中写下您想要的内容,例如:
response.getWriter().println("Whatever you want to write in the response");
但首先我建议阅读一些优秀的Java书籍,因为你的代码不是很好,servlet也是一种老式的Java Web应用程序,现在人们使用其他技术,比如使用JSP或JSF的模板,JAX-RS对于REST应用程序,用于SOAP应用程序的JAX-WS,...