7

This is my code

from nltk.tag import StanfordNERTagger
st = StanfordNERTagger('english.all.3class.distsim.crf.ser.gz')

And i get

NLTK was unable to find stanford-ner.jar! Set the CLASSPATH
  environment variable.

This is what my .bashrc looks like in ubuntu

export CLASSPATH=/home/wolfgang/Downloads/stanford-ner-2015-04-20/stanford-ner-3.5.2.jar
export STANFORD_MODELS=/home/wolfgang/Downloads/stanford-ner-2015-04-20/classifiers

Also, i tried printing the environmental variable in python this way

import os
os.environ.get('CLASSPATH')

And i recieve

'/home/wolfgang/Downloads/stanford-ner-2015-04-20/stanford-ner-3.5.2.jar'

Therefore the variables are being SET!

What is wrong then?

Why doe'snt nltk recognize my environmental variables?

chapman
  • 71
  • 1
  • 1
  • 2

3 Answers3

6

change the .jar file and the environmental variable from stanford-ner-3.5.2.jar to stanford-ner.jar

apparently NLTK has a name_pattern variable in nltk_internals.py which only accepts the CLASSPATH if it matches a regex of the value stanford-ner.jar

wolfgang
  • 7,281
  • 12
  • 44
  • 72
  • 3
    or you could simply set the classpath to the parent folder too like `os.environ['CLASSPATH'] = "/home/wolfgang/Downloads/stanford-ner-2015-04-20"`. Both these options(parent folder or stanford-ner.jar) worked for me. – psun Mar 16 '16 at 05:03
2

This is the correct way to set PATH:

st = StanfordNERTagger('C:\Python26\Lib\stanford-ner\classifiers\english.all.3class.distsim.crf.ser.gz','C:\Python26\Lib\stanford-ner\stanford-ner.jar')

Give the correct path to locate both file. If there is still a Java Environment variable error, then it means your Java Environment is not configured. To set this, go to 'My Computer -> Properties -> Advanced Setting'. There are videos showing what these settings do. Once you've done this, if the environment is properly set then when you run the python file a black command window will splash for around ten seconds while it processes your file. This should return your result without error.

Nathaniel Ford
  • 20,545
  • 20
  • 91
  • 102
Sameer
  • 31
  • 2
0

Here is my Code:

from nltk.tag import StanfordNERTagger
import os

os.getenv('CLASSPATH')

OUTPUT: '/home/user/Downloads/stanford-ner.jar'

from nltk.tokenize import sent_tokenize, word_tokenize

st = StanfordNERTagger("english.all.3class.distsim.crf.ser.gz")

Download stanford-ner.jar from here

Set Classpath export CLASSPATH=/home/admin-pc/Downloads/

Worked For Me :p

Community
  • 1
  • 1
Patel
  • 200
  • 2
  • 9