Я использую Stanford Parser для проекта NLP, Arabi c. В пакете я нашел GUI, в котором я могу попробовать демо-версию парсера, и он может сгенерировать дерево.
Я попробовал одно предложение, как вы можете посмотреть по следующей ссылке, и это выглядит совершенный https://i.postimg.cc/HL54mMwZ/screenshot-350.png
Но, когда я использовал его для кода и для того же предложения. Он породил немного другое дерево, как вы можете видеть по следующей ссылке: https://i.postimg.cc/d3XLDHv8/screenshot-351.png
Он объединил двух последних детей VP.
Это мой код и я использовала модель парсера Arabi c (arabicFactored.ser.gz)
public static void syntacticAnalysis(String[] args) {
String parserModel = "edu/stanford/nlp/models/lexparser/arabicFactored.ser.gz";
if (args.length > 0) {
parserModel = args[0];
}
LexicalizedParser lp = LexicalizedParser.loadModel(parserModel);
demoAPI(lp);
}
public static void demoAPI(LexicalizedParser lp) {
// This option shows parsing a list of correctly tokenized words
// This option shows loading and using an explicit tokenizer
TokenizerFactory<CoreLabel> tokenizerFactory =
PTBTokenizer.factory(new CoreLabelTokenFactory(), "");
Tokenizer<CoreLabel> tok =
tokenizerFactory.getTokenizer(new StringReader("راى الرجل مشهداً مرعباً في صالة السينما"));
List<CoreLabel> rawWords2 = tok.tokenize();
Tree parse = lp.apply(rawWords2);
TreebankLanguagePack tlp = lp.treebankLanguagePack(); // PennTreebankLanguagePack for English
TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
tp.printTree(parse);