I wasn't too successful running it against tweets (low hit rate/false positives, low spatial resolution) but geolocating tweets is a hard problem and I'm sure it would work better against more structured text.
I recommend Prodigy to label your examples and train a Spacy model. Prodigy is the best tool I have ever used for NLP labeling. Most likely starting with a blank model will work better, but you can try starting with one of Spacy's pre-trained models.
I wasn't too successful running it against tweets (low hit rate/false positives, low spatial resolution) but geolocating tweets is a hard problem and I'm sure it would work better against more structured text.