如何下载sklearn的数据集? - 蟒蛇

时间:2014-01-07 09:38:45

标签: python machine-learning dataset nlp scikit-learn

在NLTK中,有一个nltk.download()函数可以下载NLP套件附带的数据集。

在sklearn中,它讨论了加载数据集(http://scikit-learn.org/stable/datasets/)和从http://mldata.org/获取数据,但对于其他数据集,说明是从源下载的。

我应该在哪里保存从源代码下载的数据?在我从python代码调用之前将数据保存到正确的目录后还有其他步骤吗?

是否有如何下载例如20newsgroups数据集?

我已经安装了sklearn并试过了,但我得到了IOError。很可能是因为我没有从源代码下载数据集。

>>> from sklearn.datasets import fetch_20newsgroups
>>> fetch_20newsgroups(subset='train')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/sklearn/datasets/twenty_newsgroups.py", line 207, in fetch_20newsgroups
    cache_path=cache_path)
  File "/usr/local/lib/python2.7/dist-packages/sklearn/datasets/twenty_newsgroups.py", line 89, in download_20newsgroups
    tarfile.open(archive_path, "r:gz").extractall(path=target_dir)
  File "/usr/lib/python2.7/tarfile.py", line 1678, in open
    return func(name, filemode, fileobj, **kwargs)
  File "/usr/lib/python2.7/tarfile.py", line 1727, in gzopen
    **kwargs)
  File "/usr/lib/python2.7/tarfile.py", line 1705, in taropen
    return cls(name, mode, fileobj, **kwargs)
  File "/usr/lib/python2.7/tarfile.py", line 1574, in __init__
    self.firstmember = self.next()
  File "/usr/lib/python2.7/tarfile.py", line 2334, in next
    raise ReadError("empty file")
tarfile.ReadError: empty file

1 个答案:

答案 0 :(得分:8)

网络连接问题可能已损坏驱动器上的源存档。从用户主目录中的scikit_learn_data文件夹中删除20个与组相关的文件或文件夹,然后重试。

$ cd ~/scikit_learn_data'
$ rm -rf 20news_home
$ rm 20news-bydate.pkz