Ich werde Stanford Corenlp 2013 verwenden, um Phrasenköpfe zu finden. Ich habe diesen Thread gesehen.
Aber die Antwort war mir nicht klar und ich konnte keinen Kommentar hinzufügen, um diesen Thread fortzusetzen. Also, es tut mir leid für die Vervielfältigung.
Was ich im Moment habe, ist der Syntaxbaum eines Satzes (mit Stanford Corenlp) (ich habe es auch mit dem CONLL-Format versucht, das von Stanford Corenlp erstellt wurde). Und was ich brauche, ist genau der Kopf der Nominalphrasen.
Ich weiß nicht, wie ich Abhängigkeiten und den Syntaxbaum verwenden kann, um Köpfe von Nomenphrasen zu extrahieren.
Was ich weiß ist, dass, wenn ich nsubj (x, y)
habe, y der Kopf des Themas ist. Wenn ich dobj(x,y)
habe, ist y der Kopf des direkten Objekts. f Ich habe iobj(x,y)
, y ist der Kopf des indirekten Objekts.
Ich bin mir jedoch nicht sicher, ob dieser Weg der richtige Weg ist, um alle Phrasenköpfe zu finden. Wenn es ist, welche Regeln sollte ich hinzufügen, um alle Köpfe von Nominalphrasen zu bekommen?
Vielleicht ist es erwähnenswert, dass ich die Köpfe der Nominalphrasen in einem Java-Code brauche.
Da ich die Antwort von Chaitanya nicht kommentieren konnte, fügte ich hier mehr zu seiner Antwort hinzu.
Die Stanford CoreNLP-Suite verfügt über eine Implementierung der Collins-Kopffinderheuristik und eine semantische Headfinder-Heuristik in Form von
Alles, was Sie brauchen würden, ist eines der drei zu instanziieren und das Folgende zu tun.
%Vor%Sie können die Knoten des Baums durchlaufen und Kopfwörter bestimmen, wo immer dies erforderlich ist.
PS: Meine Antwort basiert auf der StanfordCoreNLP-Suite, die ab 20140104 veröffentlicht wurde.
Hier ist ein einfaches dfs, mit dem Sie Kopfwörter für alle Nominalphrasen in einem Satz extrahieren können
%Vor%Sie könnten den Begriff von Interesse so extrahieren, dass er ein Objekt der Klasse Baum Sie können dann Methode determineHead (Tree t) von einer der Klassen, die die Schnittstelle implementieren HeadFinder .
Tags und Links java nlp stanford-nlp phrase