cha*_*man 6 python named-entity-recognition nltk stanford-nlp
这是我的代码
from nltk.tag import StanfordNERTagger
st = StanfordNERTagger('english.all.3class.distsim.crf.ser.gz')
Run Code Online (Sandbox Code Playgroud)
我明白了
NLTK was unable to find stanford-ner.jar! Set the CLASSPATH
environment variable.
Run Code Online (Sandbox Code Playgroud)
这就是我.bashrc在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
Run Code Online (Sandbox Code Playgroud)
此外,我尝试以这种方式在python中打印环境变量
import os
os.environ.get('CLASSPATH')
Run Code Online (Sandbox Code Playgroud)
我接受了
'/home/wolfgang/Downloads/stanford-ner-2015-04-20/stanford-ner-3.5.2.jar'
Run Code Online (Sandbox Code Playgroud)
因此变量正在设置!
那有什么不对?
为什么不知道我的环境变量?
将 .jar 文件和环境变量从stanford-ner-3.5.2.jar更改为stanford-ner.jar
显然 NLTK 有一个name_pattern变量,nltk_internals.py如果它与值的正则表达式匹配,则该变量只接受 CLASSPATHstanford-ner.jar