Gibt es eine Möglichkeit, komplexe Sätze in nltk oder andere Bibliotheken zur Verarbeitung natürlicher Sprache in einfache Sätze zu zerlegen?
Zum Beispiel:
Der Park ist so wunderschön, wenn die Sonne untergeht und eine kühle Brise weht == & gt; Die Sonne geht unter. eine kühle Brise weht. Der Park ist so wunderbar.
Dies ist viel komplizierter als es scheint, so dass Sie wahrscheinlich keine vollkommen saubere Methode finden werden.
Wenn Sie jedoch den englischen Parser in OpenNLP verwenden, kann ich Ihren Beispielsatz verwenden und eine folgende Grammatikstruktur erstellen:
%Vor%Von dort können Sie es nach Belieben aussuchen. Sie können Ihre Unterklauseln erhalten, indem Sie die oberste Ebene (NP *) (VP *) abzüglich des Abschnitts (SBAR *) extrahieren. Und dann könnten Sie die Konjunktion innerhalb des (SBAR *) in die anderen beiden Anweisungen aufteilen.
Beachten Sie, dass der OpenNLP-Parser mit dem Penn Treebank Korpus trainiert wird. Ich habe eine ziemlich genaue Syntaxanalyse für Ihren Beispielsatz erhalten, aber der Parser ist nicht perfekt und kann in anderen Sätzen völlig falsch liegen. Hier finden Sie eine Erläuterung seiner Tags. Es setzt voraus, dass Sie bereits ein Grundverständnis für Linguistik und englische Grammatik haben.
Edit: Btw, so greife ich von Python aus auf OpenNLP zu. Dies setzt voraus, dass Sie die OpenNLP-JAR- und Modelldateien in einem Ordner opennlp-tools-1.4.3 haben.
%Vor%