我已按照以下问题的说明下载了stanford postagger和解析器:
但是当我在底部执行命令时,它对终端(Mac OS)中的ipython工作得非常好,但在Spyder(Anaconda)中显示错误
(NLTK无法找到stanford-postagger.jar!)因为我在终端设置了CLASSPATH
,所以我不确定出了什么问题。当我检查
import os
print os.environ.get('CLASSPATH')
它在Spyder中返回None
但在终端中返回了正确的路径。我还重新启动了程序并将目录设置为$HOME
。我可能在这里找不到任何东西吗?
from nltk.tag.stanford import StanfordPOSTagger
st = StanfordPOSTagger('english-bidirectional-distsim.tagger')
st.tag('What is the airspeed of an unladen swallow ?'.split())
答案 0 :(得分:1)
问题与python或nltk无关;这是OS X如何启动GUI应用程序的结果。基本上,CLASSPATH
环境变量在.profile
或其亲属中设置,但此文件仅在您启动终端时执行; GUI应用程序从您的登录过程继承其环境,该过程不知道CLASSPATH
。
关于如何处理这个问题有很多SO问题;请参阅here或here。但在你的情况下,还有一些应该工作的解决办法:
从终端命令行启动Spyder,而不是通过启动板启动(只需键入spyder &
)。或者
您的python程序也可以在启动Stanford解析器之前设置自己的环境(将由子进程继承),如下所示:
os.putenv("CLASSPATH", "/path/to/the/parser")