Question: We are working on sentences extracted from a PDF. The problem is that it includes the title, footers, table of contents, etc. Is there a way to determine if the sentence we get when pass the document to spacy is a complete sentence. Is there a way to filter parts of sentences like titles?

Answer: 
A complete sentence contains at least one subject, one predicate, one object, and closes with punctuation.
Subject and object are almost always nouns, and the predicate is always a verb.

Thus you need to check if your sentence contains two nouns, one verb and closes with punctuation:

```
import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("I. Introduction\nAlfred likes apples! A car runs over a red light.")
for sent in doc.sents:
    if sent[0].is_title and sent[-1].is_punct:
        has_noun = 2
        has_verb = 1
        for token in sent:
            if token.pos_ in ["NOUN", "PROPN", "PRON"]:
                has_noun -= 1
            elif token.pos_ == "VERB":
                has_verb -= 1
         if has_noun < 1 and has_verb < 1:
             print(sent.string.strip())

```

**Update**

I also would advise to check if the sentence starts with an upper case letter, I added the modification in the code. Furthermore, I would like to point out that what I wrote is true for English and German, I don't know how it is in other languages.
You can perform sentence segmentation using trainable pipeline component in Spacy.
<https://spacy.io/api/sentencerecognizer>

Additionally, if you can come up with some pattern in the text string then use python regex
lib `re` <https://docs.python.org/3/library/re.html>.