Named-entity recognition (NER) tries to detect names of persons, organizations, locations, and other names in texts. Some NER systems are almost as good as humans, but it is not an easy task. Named entities usually start with upper case, such as Ivan. We should, therefore, not change the case of words when applying NER.
NLTK has support for the Stanford NER API. This is a Java API, so you need to have Java on your system. I tested the code with Java 1.8.0_65. The code in this recipe downloads the most recent Stanford NER archive (stanford-ner-2015-04-20.zip/3.5.2
) as of October 2015. If you want another version, take a look at http://nlp.stanford.edu/software/CRF-NER.shtml (retrieved October 2015).
Install NLTK by following the instructions in the Introduction section. You may also need to install Java.