我正在使用此脚本尝试从nltk
包导入python的twitter_samples。我目前在Anaconda环境中使用python 2.7。
我正在使用Spyder来运行代码。
import nltk
nltk.download('twitter_samples')
from nltk.corpus import twitter_samples
print twitter_samples.fileid()
当我运行它时,我将此作为回报:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\Person\Anaconda3\envs\py27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile
execfile(filename, namespace)
File "C:\Users\Person\Anaconda3\envs\py27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 71, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "C:/Users/Ben/Anaconda3/attemptNLTK_download.py", line 9, in <module>
from nltk.corpus import twitter_samples
ImportError: cannot import name twitter_samples
但是当我导入movie_reviews时它工作正常。
from nltk.corpus import movie_reviews
我不知道为什么这不起作用。我按照建议将环境变量添加到我的系统NLTK_DATA为C:\ nltk_data,但是没有修复它。它位于默认位置(C:\ nltk_data)。
也许有办法进入&#34;导入&#34;语料库直接不使用导入...数据在我的C盘上,我可以看到它,我只是无法通过导入功能访问它。
我试图使用这些数据来训练分类器的正/负陈述/推文。
答案 0 :(得分:1)
根据NLTK twitter HOWTO,命令x1=[]
fopen=open("testxxx",'r')
for line in fopen:
x=line.split()
x1.append(x)
print x1
是正确的,因此导入错误的最可能原因是您的nltk版本已过期。
nltk的Twitter软件包很新;它是在2015年9月以3.0.5版本添加的,但是&#34;改进了#34;从那时起以各种方式。现在nltk是版本3.2,但是当前的Anaconda发行版附带nltk 3.1。你有哪一个?您可以通过打印[['i', 'have', 'a', 'dog'], ['i', 'have', 'a', 'cat'], []]
来检查nltk版本。
要更新到Anaconda分发的最新版本,请启动Anaconda命令提示符并运行此命令:
from nltk.corpus import twitter_samples
Anaconda在发布后的几天内更新到当前版本的nltk,所以我希望它们能够继续使用未来的版本,除非出现一些兼容性问题。