package com.parser;
import java.util.List;
import java.io.StringReader;
import edu.stanford.nlp.process.Tokenizer;
import edu.stanford.nlp.process.TokenizerFactory;
import edu.stanford.nlp.process.CoreLabelTokenFactory;
import edu.stanford.nlp.process.PTBTokenizer;
import edu.stanford.nlp.ling.CoreLabel;
import edu.stanford.nlp.trees.*;
import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
public class StanfordParserDemo1Copy {
private StanfordParserDemo1Copy() {} // static methods only
public static void main(String[] args) {
String parserModel = "edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz";
LexicalizedParser lp = LexicalizedParser.loadModel(parserModel);
String sent2 = "This is another sentence.";
demoAPI(lp,sent2);
}
public static void demoAPI(LexicalizedParser lp,String str) {
TokenizerFactory<CoreLabel> tokenizerFactory = PTBTokenizer.factory(new CoreLabelTokenFactory(), "");
Tokenizer<CoreLabel> tok = tokenizerFactory.getTokenizer(new StringReader(str));
List<CoreLabel> rawWords2 = tok.tokenize();
Tree parse = lp.apply(rawWords2);
TreebankLanguagePack tlp = lp.treebankLanguagePack(); // PennTreebankLanguagePack for English
GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
List<TypedDependency> tdl = gs.typedDependenciesCCprocessed();
for(int i = 0; i < tdl.size(); i++){
System.out.println(tdl.get(i));
}
//System.out.println(tdl);
// System.out.println();
// You can also use a TreePrint object to print trees and dependencies
//TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
//tp.printTree(parse);
}
}
Stanford Parser 对一句话进行依存分析
最新推荐文章于 2023-11-11 15:02:53 发布