2016-03-22 5 views
2

Ich stieß auf dieses Papier http://swrc.kaist.ac.kr/paper/171.pdf, die eine Methode beschreibt, um Triplets aus einem Abhängigkeitsbaum zu extrahieren. Dieses Ergebnis ist genau das, was ich will. Das Papier erwähnt jedoch nur, dass es sich um einen "Post-Order-Tree-Traversal" handelt. Gibt es eine Open-Source-Implementierung, um Triplets zu extrahieren? Zum Beispiel "VRLA wird 2016 in Los Angeles abgehalten." erzeugen "VRLA, gehalten an, Los Angeles" und "VRLA, gehalten wird, im Jahr 2016" soll, kannAbhängigkeit Baum zu Triplets

Antwort

1

Sie versuchen, einen Blick auf die Stanford OpenIE System (Teil CoreNLP) unter:

new Sentence("VRLA is held at Los Angeles in 2016").openieTriples(); 

Dies sollte Tripel für (VRLA; in Los Angeles) und (VRLA; in 2016 gehalten werden) generieren. Weitere Informationen zur Verwendung finden Sie auf der OpenIE Annotator page. Generell gibt es eine Reihe von OpenIE-Systemen, die Sie sich ansehen können. Ollie ist vielleicht der prominenteste, von der University of Washington.

+0

OpenIE scheint extrem begrenzt. Ich versuche, dem OP eine sehr ähnliche Sache zu machen - im Grunde triple ich Text aus dem Text, behalte aber auch alle anderen Informationen wie Adverbien, Adjektive und füge sie als Modifizierer zu einem Wort hinzu. Aber Stanfords OpenIE funktioniert wirklich nicht gut. "Ich bin schnell gelaufen." keine Beziehungen ergeben. Gibt es andere kommerziell lizenzierbare Informationsextraktoren, die robuster sind als die von Stanford? Ollie sieht gut aus - aber nicht kommerziell lizenzierbar. – abagshaw

+1

Ich denke, was Sie beschreiben, ist eine Abhängigkeitsparse. OpenIE extrahiert Subjekt/Verb/Objekt Tripel und behält die Abhängigkeitsstruktur der Argumente (von denen Sie Adverbien und Adjektive extrahieren können). Der Schritt darüber ist etwas wie AMR oder eine Abhängigkeitsparse. Übrigens soll "Ich lief schnell" keine Tripel extrahieren: "Schnell" ist ein Modifikator und nicht das Objekt der Relation "ran". –

+0

Stimmt, mein Fehler. Ich nehme an, es wäre nicht in der Lage, eine doppelte per-se I-ran mit dem Modifier schnell auf ran zurückzukehren. Aber das macht nichts. Ein anderes, komplexeres Beispiel. "Meine Klassenkameraden waren an der Präsentation interessiert." gibt viele Triples zurück und funktioniert großartig mit OpenIE - aber wenn ich es ändere zu "Meine Klassenkameraden waren nicht an der Präsentation interessiert." einfach nicht hinzufügen - OpenIE fällt auseinander und gibt nichts zurück. Also stimme ich etwas wie AMR zu Ich denke, was ich suche. Kennen Sie Open-Source-Bibliotheken für AMR für Java? – abagshaw