2016-05-10 52 views
0

我已經下載了斯坦福postagger和解析器按照指示下面的問題寫不工作:NLTK API斯坦福POSTagger工作正常,在終端IPython中,但在巨蟒與Spyder的

Stanford Parser and NLTK

但是,當我執行命令在底部,它工作得很好ipython在終端(Mac OS),但在Spyder(蟒蛇) (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()) 

回答

1

該問題與python或nltk無關;這是OS X如何啓動GUI應用程序的結果。基本上,CLASSPATH環境變量設置在您的.profile或其親屬中,但該文件僅在您啓動終端時執行; GUI應用程序從您的登錄過程中繼承它們的環境,但不知道CLASSPATH

有很多關於如何處理這個問題的SO問題;見herehere。但是,在你的情況,也有一對夫婦的變通那應該工作:

  1. 開始的Spyder從終端命令行,而不是通過快速啓動(只需鍵入spyder &)。或

  2. 你的Python程序也可以設置自己的環境,啓動斯坦福解析器之前(將由子進程繼承),像這樣:

    os.putenv("CLASSPATH", "/path/to/the/parser") 
    
+0

我剛剛從終端開始的Spyder和它工作完美。也欣賞關於爲什麼會發生這種情況的教育以及額外的閱讀材料。 – CWeeks

+0

@CWlearner,如果alexis的答案能解決您的問題,請接受答案(帶勾號)。 – alvas

相關問題