Skip to content

Instantly share code, notes, and snippets.

Last active Jun 28, 2020
What would you like to do?
# function for rule 1: noun(subject), verb, noun(object)
def rule1(text):
doc = nlp(text)
sent = []
for token in doc:
# if the token is a verb
if (token.pos_=='VERB'):
phrase =''
# only extract noun or pronoun subjects
for sub_tok in token.lefts:
if (sub_tok.dep_ in ['nsubj','nsubjpass']) and (sub_tok.pos_ in ['NOUN','PROPN','PRON']):
# add subject to the phrase
phrase += sub_tok.text
# save the root of the verb in phrase
phrase += ' '+token.lemma_
# check for noun or pronoun direct objects
for sub_tok in token.rights:
# save the object in the phrase
if (sub_tok.dep_ in ['dobj']) and (sub_tok.pos_ in ['NOUN','PROPN']):
phrase += ' '+sub_tok.text
return sent
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment