7 分析器
功能介绍:尝试解析器最简单的方法是在命令行工具。该工具仅用于演示和测试。请从我们网站上的英文分块解析器模型,并用以下命令启动解析工具。
代码实现:
package package01;
import opennlp.tools.cmdline.parser.ParserTool;
import opennlp.tools.parser.Parser;
import opennlp.tools.parser.ParserFactory;
import opennlp.tools.parser.ParserModel;
import opennlp.tools.util.InvalidFormatException;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class Test07 {
public static void main(String[] args) throws IOException {
Test07.Parse();
}
/**
* 6.分析器: Parser
* @deprecated Given this sentence: "Programcreek is a very huge and useful website.", parser can return the following:
* (TOP (S (NP (NN Programcreek) ) (VP (VBZ is) (NP (DT a) (ADJP (RB very) (JJ huge) (CC and) (JJ useful) ) ) ) (. website.) ) )
* (TOP
* (S
* (NP
* (NN Programcreek)
* )
* (VP
* (VBZ is)
* (NP
* (DT a)
* (ADJP
* (RB very)
* (JJ huge)
* (CC and)
* (JJ userful)
* )
* )
* )
* (. website.)
* )
* )
* @param str
*/
public static void Parse() throws InvalidFormatException, IOException {
// http://sourceforge.net/apps/mediawiki/opennlp/index.php?title=Parser#Training_Tool
InputStream is = new FileInputStream("E:\NLP_Practics\models\en-parser-chunking.bin");
ParserModel model = new ParserModel(is);
Parser parser = ParserFactory.create(model);
String sentence = "Programcreek is a very huge and useful website.";
opennlp.tools.parser.Parse topParses[] = ParserTool.parseLine(sentence, parser, 1);
for (opennlp.tools.parser.Parse p : topParses) {
p.show();
}
is.close();
}
}
结果
(TOP (S (NP (NN Programcreek)) (VP (VBZ is) (NP (DT a) (ADJP (RB very) (JJ huge) (CC and) (JJ useful)))) (. website.)))