








# RUN THIS CELL to perform standard imports:
import spacy
nlp = spacy.load('en_core_web_sm')





# Enter your code here:

with open('../TextFiles/owlcreek.txt') as f:
    doc = nlp(f.read())


# Run this cell to verify it worked:

doc[:36]





len(doc)





sents = [sent for sent in doc.sents]
len(sents)





print(sents[1].text)





# NORMAL SOLUTION:
for token in sents[1]:
    print(token.text, token.pos_, token.dep_, token.lemma_)


# CHALLENGE SOLUTION:
for token in sents[1]:
    print(f'{token.text:{15}} {token.pos_:{5}} {token.dep_:{10}} {token.lemma_:{15}}')





# Import the Matcher library:

from spacy.matcher import Matcher
matcher = Matcher(nlp.vocab)


# Create a pattern and add it to matcher:

pattern = [{'LOWER': 'swimming'}, {'IS_SPACE': True, 'OP':'*'}, {'LOWER': 'vigorously'}]

matcher.add('Swimming', None, pattern)


# Create a list of matches called "found_matches" and print the list:

found_matches = matcher(doc)
print(found_matches)





print(doc[1265:1290])


print(doc[3600:3615])





for sent in sents:
    if found_matches[0][1] < sent.end:
        print(sent)
        break


for sent in sents:
    if found_matches[1][1] < sent.end:
        print(sent)
        break



