I would like to post a brutal and greedy solution here to solve the problem cast by @Enthusiast: get the full name of a person if possible.
The capitalization of the first character in each name is used as a criterion for recognizing PERSON in Spacy. For example, 'jim hoffman' itself won't be recognized as a named entity, while 'Jim Hoffman' will be.
Therefore, if our task is simply picking out persons from a script, we may simply first capitalize the first letter of each word, and then dump it to spacy.
import spacy
def capitalizeWords(text):
newText = ''
for sentence in text.split('.'):
newSentence = ''
for word in sentence.split():
newSentence += word+' '
newText += newSentence+'\n'
return newText
nlp = spacy.load('en_core_web_md')
doc = nlp(capitalizeWords(rawText))
#......
Note that this approach covers full names at the cost of the increasing of false positives.