Frage

Lassen Sie uns sagen, es ist ein Satz:

On March 1, he was born.

Ändern es zu

He was born on March 1.

bricht nicht den Sinn des Satzes, und es ist nach wie vor gültig. erzeugen würde seltsam ungültige Sätze Worte in anderer Weise schlurfen. Also im Grunde, ich spreche über Teile des Satzes, die die Informationen präziser zu machen, aber sie entfernt nicht den ganzen Satz brechen. Gibt es eine NLP-Bibliothek, in denen solche Teile zu identifizieren verfügbar ist?

War es hilfreich?

Lösung

Konstituenten

Es klingt wie Sie den Satz identifizieren wollen Bestandteile , wobei die Gruppen von Worten, die gemäß der Grammatik einer Sprache als eine einzige Einheit arbeiten.

In der Tat, wenn Linguistik versucht, eine Sprache der Grammatik zu entdecken, sie tun es teilweise durch einen Blick auf Bewegung . Wie in Ihrem Beispiel ist, wo eine Gruppe von Wörtern in eine andere Position in einem Satz bewegt werden kann, während immer noch die Bedeutung des Satzes zu erhalten.

Konstituenten können einzelne Wörter, Phrasen, oder sogar größere Gruppen wie ganze Klauseln. Innerhalb eines Satzes, haben sie eine verschachtelte hierarchische Struktur. Zum Beispiel kann das erste Beispiel Satz, den Sie gab könnten analysiert, wie:

(S  (PP (IN On) (NP (NNP March) (CD 1)))
    (NP (PRP he))
    (VP (VBD was) (VP (VBN born))))

Der ganze Satz ist aus einem Präpositionalphrase , gefolgt von einem Nominalphrase , und dann ein Verbphrase . Die Präpositionalphrase kann weiter in eine Einheit zerlegt wird, die aus dem Wort ‚On‘ von einer Nominalphrase gefolgt.

Phrase Structure Parser

Bestandteile automatisch zu finden, dass Sie wahrscheinlich eine Phrasenstruktur Parser verwenden möchten. Es gibt viele solche Parsen von dem wählen, als Open Source verfügbar sind, einschließlich:

Die Stanford und Berkeley-Parser sind wahrscheinlich die einfachste und Verwendung zu installieren. Wie zu sehen in Cer et al. 2010 , die genauesten Parser sind Berkeley und Charniak. Der Bikel Parser ist langsamer und weniger genau als die andere.

Online-Demo

Es gibt eine Online-Demo für die Stanford-Parser hier . Ich habe die Demo den Parsing oben Ihren Beispielsatz gegeben zu erzeugen.

Ein Hinweis zum Löschen

Innerhalb jeder Bestandteil, wird es ein Kopf Wort . Um zum Beispiel die Nominalphrase nehmen:

(NP (DT The) (JJ big) (JJ blue) (NN ball))

Der Kopf Wort, das hier ist das Substantiv ball, und es wird durch die Adjektive big und blue modifiziert. Wenn diese Nominalphrase in einem Satz eingebettet wurde, könnten Sie diese Modifier löschen und noch etwas, das mit entspricht, aber weniger spezifisch als die Bedeutung des ursprünglichen Satzes.

Innerhalb von Nominalphrasen, können Sie in der Regel die Adjektive, Substantive löschen, die nicht der Kopf sind und verschachtelte Präpositionalphrasen.

Innerhalb von Verbalphrasen und vollständigen Klauseln, werden die Dinge komplizierter, da das Löschen Material, dass der Server als einergument auf das Verb kann vollständig auf die Auslegung ändern, um einen Satz. Zum Beispiel the book von He sold Jim the book Ergebnissen in Löschen He sold Jim .

Andere Tipps

OpenNLP können für Sie einige dies tun. Phrase und Parsing Chunking sollte Ihnen dabei helfen. Dies ist jedoch nicht ein besonders einfaches Problem, und Algorithmen dazu neigen, zu verwirren zu lassen, wie Satzbau komplexen und mehrdeutig wird. Sie sollten innerhalb eines Satzes zu Neuordnungs Sätze manchmal in der Lage sein und pflegen bedeutet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top