2016-09-13 4 views
-2

Ich bin vor dem gleichen Problem wie Stanford CoreNLP OpenIE annotator Ich versuche output = nlp.annotate (s, Eigenschaften = { "Annotatoren": "tokenize, ssplit, pos, depparse, natlog, openie", "output" : "json", "openie.triple.strict": "wahr", "openie.max_entailments_per_klause": "1", "openie.splitter.disable": "true"})StanfordCoreNLP openIE Ausgabe

Aber immer noch bekomme ich 4 Klauseln

(Sie werden von ', zwanzig Prozent Elektromotoren', 'Montage-Linie') gezogen (Sie werden von ',' Prozent Elektromotoren ',' Montage-Linie 'gezogen) sind ', twenty Prozent Elektromotoren', 'pulled') (Sie sind ',' Prozent Elektromotoren ',' pulled ') Mache ich etwas falsch? So erhalten Sie genaue dreifache ('sind gezogen von', 'Zwanzig Prozent Elektromotoren', 'Fließband')

+0

Nachdem ich verstanden habe, dass dies erwartetes Verhalten ist, habe ich ein Skript geschrieben, um die Beziehungen herauszufiltern, die in anderen Beziehungen enthalten sind. Danke für die Antwort Gabor Angeli – Prathamesh

Antwort

1

Dies ist eigentlich erwartetes Verhalten. Es war eine Designentscheidung im OpenIE-System, alle Triples zu erzeugen, die logisch mit dem ursprünglichen Satz verbunden sind, selbst wenn sie redundant sind. Die Idee ist, dass diese Tripel normalerweise für etwas verwendet werden, das dem IR-ischen Lookup ähnlich ist, und in diesen Fällen ist es praktisch, keinen Fuzzy-Abgleich durchzuführen, wenn eines der Tripel der Abfrage "ähnlich genug" ist.

Verwandte Themen