Skip to content
Back to skills

Data And Downloader

ASecurity

"Configure NLTK data search paths, download only needed NLTK data

  • 247 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
toolspythonrustgobashapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill data-and-downloader --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Data And Downloader?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Data And Downloader
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-data-and-downloader/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-data-and-downloader)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: data-and-downloader
description: "Configure NLTK data search paths, download only needed NLTK data
  packages, locate/load resources with nltk.data, use corpus readers, and
  recover safely from missing, corrupt, stale, or unsafe data archives."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# Data And Downloader

Use this sub-skill when the task is about NLTK data packages rather than NLP algorithm usage: selecting targeted data downloads, setting `NLTK_DATA`/`nltk.data.path`, checking `nltk.data.find()` and `nltk.data.load()`, using `nltk.corpus` readers, diagnosing missing or corrupt resources, or recovering from downloader/path security failures.

Route away from this sub-skill when the task is mainly about:
- Tokenization, POS tagging, stemming, lemmatization, or VADER scoring after data is available: use `../tokenize-tag-stem/SKILL.md`.
- Grammars, parsers, trees, chunkers, semantics, or inference APIs: use `../grammar-parse-semantics/SKILL.md`.
- Classifiers, language models, metrics, probability distributions, or translation/alignment algorithms: use `../ml-metrics-and-translation/SKILL.md`.

## Fast Paths

- Install only the packages required by the failing API; do not recommend broad `all` unless the user explicitly wants the full collection. Common targeted packages: `punkt_tab`, `averaged_perceptron_tagger_eng`, `averaged_perceptron_tagger_rus`, `wordnet`, `omw-2.0`, `vader_lexicon`, `universal_tagset`, `brown`, `treebank`, `reuters`, and `comtrans`.
- Use `python -m nltk.downloader -d /path/to/nltk_data PKG...` or `import nltk; nltk.download("PKG", download_dir="/path/to/nltk_data")` for explicit downloads. Use `-q/--quiet`, `-f/--force`, `-e/--exit-on-error`, and `-u/--url` only when the task calls for them.
- For portable projects, set `NLTK_DATA=/path/to/nltk_data` before Python starts, or prepend the directory at runtime with `import nltk.data; nltk.data.path.insert(0, "/path/to/nltk_data")`.
- Probe resources before running an algorithm: `nltk.data.find("tokenizers/punkt_tab/english/")`, `nltk.data.find("taggers/averaged_perceptron_tagger_eng/")`, `nltk.data.find("corpora/wordnet/")`, or `nltk.data.find("sentiment/vader_lexicon.zip/vader_lexicon/vader_lexicon.txt")`.
- Use corpus readers via `from nltk.corpus import brown, wordnet, reuters`; start with `fileids()`, `words()`, `sents()`, `tagged_words()`, `raw()`, `readme()`, and `categories()` where the reader supports them.
- Treat `LookupError` messages as package hints, but distinguish “package missing” from “package present but entry missing/corrupt”; stale/corrupt packages should be force-redownloaded into a controlled directory.
- For recovery from untrusted data inputs, reject traversal-like resource names, do not unzip arbitrary archives into `nltk_data`, and rely on the downloader’s validated extraction path instead of custom unsafe extraction.

## Reference Map

- Targeted package workflows, `NLTK_DATA` setup, downloader commands, corpus reader recipes, and safe recovery patterns: `references/data-workflows.md`.
- API signatures and resource/package map for `nltk.download`, `Downloader`, `nltk.data.find/load`, CLI flags, and common corpus reader methods: `references/api-reference.md`.
- LookupError diagnosis, read-only paths, proxy/network failures, stale/corrupt resources, package renames, and downloader/data security errors: `references/troubleshooting.md`.
- No-download checker for installed NLTK data paths and optional explicit download mode: `scripts/check_nltk_data.py`.

## Minimum Validation Pattern

1. Print `nltk.__version__`, Python version, `NLTK_DATA`, and the effective `nltk.data.path` before changing the environment.
2. Check exact resources with `nltk.data.find()` or the bundled no-download script; avoid importing a corpus reader as proof unless you also call a method such as `fileids()` or `words()[:5]`.
3. If a download is required, name explicit package IDs and use a controlled `download_dir`; re-run a no-download check afterward.
4. For corpus workflows, assert representative outputs and supported methods: e.g. `brown.fileids()`, `brown.words(fileids="ca01")`, `brown.tagged_words(tagset="universal")`, `wordnet.synsets("dog")`, `reuters.categories()`, or `comtrans.aligned_sents()[:1]` when the package is installed.
5. For security-sensitive recovery, ensure malformed resource strings fail closed (`ValueError`/`LookupError`) and archive extraction errors leave no partially trusted content to load.

Run the bundled checker from any current working directory after installing NLTK:

```bash
python /path/to/skills/disco/nltk/sub-skills/data-and-downloader/scripts/check_nltk_data.py --help
python /path/to/skills/disco/nltk/sub-skills/data-and-downloader/scripts/check_nltk_data.py --inspect
```

Files in this skill

  • SKILL.md4.7 KB
  • references/api-reference.md8.5 KB
  • references/data-workflows.md9 KB
  • references/troubleshooting.md8.9 KB
  • scripts/check_nltk_data.py10.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.