从默认的〜/ ntlk_data更改nltk.download()路径目录

she*_*lih 14 python default path nltk python-2.7

我试图nltk在计算服务器上下载/更新python 包,它返回了这个[Errno 122] Disk quota exceeded:错误.

特别:

[nltk_data] Downloading package stop words to /home/sh2264/nltk_data...
[nltk_data] Error downloading u'stopwords' from
[nltk_data] <https://raw.githubusercontent.com/nltk/nltk_data/gh-
[nltk_data] pages/packages/corpora/stopwords.zip>: [Errno 122]
[nltk_data] Disk quota exceeded:
[nltk_data] u'/home/sh2264/nltk_data/corpora/stopwords.zip
False
Run Code Online (Sandbox Code Playgroud)

我怎样才能更改nltk包的整个路径,以及我应该做出哪些其他更改以确保无错加载nltk

Ort*_*kni 13

根据文件:

默认情况下,软件包安装在系统范围的目录中(如果Python有足够的权限写入它); 或者在当前用户的主目录中.但是,如果需要,download_dir参数可用于指定不同的安装目标.

要指定下载目录,请使用以下示例:

nltk.download('treebank', download_dir='/mnt/data/treebank')
Run Code Online (Sandbox Code Playgroud)

  • 要检索某些 nltk 下载的软件包,您可能还需要将 `download_dir` 包含到 nltk 的数据路径 -&gt; `nltk.data.path.append('/mnt/data/treebank')` (4认同)

smc*_*mci 10

这可以通过命令行(nltk.download(..., download_dir=)或通过GUI)进行配置.奇怪的nltk似乎完全忽略了自己的环境变量,NLTK_DATA并将其下载目录默认为标准的五个路径集,无论是否NLTK_DATA已定义及其指向的位置,无论nltk是否为机器或架构上甚至存在五个默认目录(!).其中一些在安装NLTK数据中有记录,虽然它不完整且有点埋没;在下面以更清晰的格式再现:

命令行安装

下载程序将搜索现有nltk_data目录以安装NLTK数据.如果不存在,它将尝试在中心位置(使用管理员帐户时)或在用户的文件空间中创建一个.如有必要,请从管理员帐户或使用sudo运行下载命令.建议的系统位置是:

  • C:\nltk_data (Windows);
  • /usr/local/share/nltk_data (Mac)和
  • /usr/share/nltk_data (UNIX).

您可以使用-d标志指定其他位置(但如果执行此操作,请确保相应地设置NLTK_DATA环境变量).

  • 运行命令 python -m nltk.downloader all

  • 要确保集中安装,请运行以下命令: sudo python -m nltk.downloader -d /usr/local/share/nltk_data all

  • 但实际上他们应该说: sudo python -m nltk.downloader -d $NLTK_DATA all

现在关于NLTK_DATA应该使用的推荐路径,nltk并没有真正给出任何正确的指导,但它应该是一个通用的独立路径,不在任何安装树(不在其下<python-install-directory>/lib/site-packages)或任何用户目录下.因此/usr/local/share,/opt/share或类似的.在MacOS 10.7+上,/usr因此/usr/local/默认情况下隐藏了这些日子,因此/opt/share可能是更好的选择.或者做chflags nohidden /usr/local/share.

  • 这不是我看到的行为..作为docker容器中的root,它下载到/ root/nltk_data. (6认同)
  • 如果我们只下载 Linux 中特定目录的停用词`sudo python -m nltk.downloader -d /usr/local/share/nltk_data stopwords` (2认同)
  • @HansikaHettiarachchi您可以指定多个下载。`sudo python -m nltk.downloader -d / usr / local / share / nltk_data停用词wordnet punkt` (2认同)