Search code examples
pythonnltkosx-yosemitestanford-nlppos-tagger

Unable to instantiate StanfordNERTagger on OS X


I am trying to instantiate StanfordNERTagger. This is what I am trying:

st = StanfordNERTagger("/Users/attitude/Desktop/english.all.3class.caseless.distsim.crf.ser.gz","/Users/attitude/Desktop/stanford-ner-2015-12-09/stanford-ner.jar")

I have set the CLASSPATH variable to /Users/attitude/Desktop/stanford-ner-2015-12-09/stanford-ner.jar (I also tried just the parent folder as value - /Users/attitude/Desktop/stanford-ner-2015-12-09).

However, I am getting this error:

LookupError: Could not find stanford-ner.jar jar file at /Users/attitude/Desktop/stanford-ner-2015-12-09/stanford-ner.jar.

I have done everything mentioned in these two answers - this and this. What else do I do now to fix this error?

OS X Yosemite - Python 2.7.


Solution

  • TL;DR:

    Without setting environmental variable, use the keywords arguments, model_filename and path_to_jar

    from nltk.tag import StanfordNERTagger
    
    stanford_ner_dir = '/home/alvas/stanford-ner/'
    eng_model_filename= stanford_ner_dir + 'classifiers/english.all.3class.distsim.crf.ser.gz'
    my_path_to_jar= stanford_ner_dir + 'stanford-ner.jar'
    
    st = StanfordNERTagger(model_filename=eng_model_filename, path_to_jar=my_path_to_jar) 
    st.tag('Rami Eid is studying at Stony Brook University in NY'.split())
    

    In long:

    See https://stackoverflow.com/a/34112695/610569