verwende ich Stanford NLP Parser (http://sergey-tihon.github.io/Stanford.NLP.NET/StanfordParser.html), um Sätze zu analysieren.Stanford NLP gibt zurück: statt NNP
Das Problem ist, dass es eine Diskrepanz betwwen die Ergebnisse aus der Bibliothek und die Ergebnisse von Online-Demo-Seite (http://nlp.stanford.edu:8080/parser/index.jsp)
Das Problem mit dem folgenden Satz ist:
die Bühne. Plus, er
Wenn ich dieses Online laufen Dies ist die Ausgabe, die ich bekomme:
(ROOT (NP (DT die) (NN Stufe)())..)
(ROOT (NP (NP (NNP plus)) (,,) (NP (PRP er))))
Bitte beachten Sie, dass die Plus
alsidentifiziert
Das Problem ist, dass der gleiche Satz einen etwas anderen Ausgang ergibt, wenn sie von der lib verarbeitet:
{(ROOT (FRAG (FRAG (NP (DT der) (NN Stufe)) (. Wie kann ich
Wie Sie sehen können, ist die Plus
jetzt als :
identifiziert: (Plus) (FRAG (, ,) (NP (PRP er)}))))).) Erzwinge die lib, NNP zurückzugeben? Hier
ist der Code:
var sent = "the stage. Plus, he";
var lp = LexicalizedParser.loadModel(modelsDirectory + @"\lexparser\englishPCFG.ser.gz");
var f = PTBTokenizer.factory(new CoreLabelTokenFactory(), "");
var s = new java.io.StringReader(sent);
var w = f.getTokenizer(s).tokenize();
s.close();
var t = lp.apply(w);
NNP-Tag auf 'Plus' ist ein Fehler? –
Nun, ich bin unklar, was die Semantik des Satzes tatsächlich ist. Aber NNP ist ein Eigenname und Plus scheint eher ein Bindeglied ("CC") als ein Eigenname. –
Ich bin nur ein Entwickler, ich weiß nicht, warum sie das wollen. Meine Aufgabe ist es, dies konsequent und richtig zu machen. –