Wie kann ich Nominalphrasen mit Spacy aus dem Text extrahieren?
Ich beziehe mich nicht auf Teil der Rede-Tags. In der Dokumentation kann ich nichts über Nominalphrasen oder regelmäßige Parsebäume finden.Substantiv-Ausdrücke mit spacy
10
A
Antwort
26
Wenn Sie Basis NPs wollen, dh NPs ohne Koordination, Präpositionalphrasen oder Relativsätze, können Sie die noun_chunks Iterator auf der Doc und Span-Objekte verwenden:
>>> from spacy.en import English
>>> nlp = English()
>>> doc = nlp(u'The cat and the dog sleep in the basket near the door.')
>>> for np in doc.noun_chunks:
>>> np.text
u'The cat'
u'the dog'
u'the basket'
u'the door'
Wenn Sie etwas anderes benötigen, der beste Weg, ist es, über die Wörter des Satzes zu iterieren und den syntaktischen Kontext zu betrachten, um zu bestimmen, ob das Wort den gewünschten Phrasentyp beherrscht. Wenn dies der Fall ist, geben Sie den Unterbaum ein:
from spacy.symbols import *
np_labels = set([nsubj, nsubjpass, dobj, iobj, pobj]) # Probably others too
def iter_nps(doc):
for word in doc:
if word.dep in np_labels:
yield word.subtree
Sehr geehrter Syllogismus, können Sie mir sagen, was sind die "wahrscheinlich anderen" Tags, die man hinzufügen kann, um den Code zu vervollständigen? Ich möchte auch Dinge wie "das Baby und seine Spielsachen" extrahieren. – user1419243