!7 lib 1008485 // stanford parser lib 1008486 // english model import edu.stanford.nlp.ling.CoreLabel; import edu.stanford.nlp.process.TokenizerFactory; import edu.stanford.nlp.parser.lexparser.LexicalizedParser; import edu.stanford.nlp.process.CoreLabelTokenFactory; import edu.stanford.nlp.process.PTBTokenizer; import edu.stanford.nlp.process.Tokenizer; import edu.stanford.nlp.trees.Tree; sS PCG_MODEL = "edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"; static TokenizerFactory tokenizerFactory; static LexicalizedParser parser; static Tree parse(S str) { List tokens = tokenize(str); ret parser.apply(tokens); } static L tokenize(String str) { Tokenizer tokenizer = tokenizerFactory.getTokenizer( new StringReader(str)); ret tokenizer.tokenize(); } p { tokenizerFactory = PTBTokenizer.factory(new CoreLabelTokenFactory(), "invertible=true"); parser = LexicalizedParser.loadModel(PCG_MODEL); S str = "My dog also likes eating sausage."; Tree tree = parse(str); L leaves = tree.getLeaves(); // Print words and Pos Tags for (Tree leaf : leaves) { Tree parent = leaf.parent(tree); print(" " + leaf.label().value() + " [" + parent.label().value() + "]"); } print(); printTree(tree); } svoid printTree(Tree tree) { printTree("", tree); } svoid printTree(S indent, Tree tree) { //if (l(indent) > 4) ret; print(indent + tree.label().value()); for (Tree child : tree.getChildrenAsList()) printTree(indent + " ", child); }