Build a Taboo clue-game dataset with wordfreq, spaCy and DeepSeek
Session from clue-vibes-traces on Hugging Face by build-small-hackathon · CC-BY-4.0 · condensed by Coders Talk
Create a dataset of target words with five banned words each for a Taboo-style clue game: sample and lemmatize English words in a Zipf frequency band, then use DeepSeek to generate challenging banned words for each target.
- +0Prompt · +0Build a taboo-game word dataset: sample 15k lemmatized English words (Zipf 3.5-5.2) with wordfreq+spaCy, then write (but don't run) a DeepSeek annotator to generate 5 non-trivial banned words per target.
- +0mAgent did · +0mSet up venv, installed wordfreq/spacy/openai/click, downloaded en_core_web_lg, wrote build_target_words.py and annotate_banned_words_deepseek.py.
- +7mFail · +7mTarget generator could only find 9,647 unique lemmas in the exact 3.5-5.2 band, short of the requested 15,000 goal, since wordfreq only has ~14,211 raw entries in that range.
- +9mIntervention · +9mSaid to just use whatever count falls in the exact band instead of relaxing the frequency cutoff to force 15k.Why: I didn't want the dataset stretched with looser frequency words just to hit an arbitrary count; better to keep the exact linguistic band clean.
- +14mPrompt · +14mRestrict target words to NOUN/VERB/ADJ/ADV and exclude stopwords, in a new file, and point the annotator at it without deleting the original dataset.
- +14mAgent did · +14mGenerated data/target_words_playable.json (7,237 lemmas, POS-filtered, stopwords excluded) and updated the annotator's defaults to use it.
- +25mFail · +25mAnnotator kept returning only 4 valid banned words per batch instead of 5; investigation showed the validator was correctly rejecting words like 'nightclub' for 'club' because they leaked the target as a substring.
- +27mIntervention · +27mRejected the fix of asking DeepSeek for extra candidate words to compensate; wanted exactly five requested and validated, not a padded pool.Why: Asking the model for more than five felt like it was loosening the data contract rather than fixing the actual leak problem in the prompt.
- +32mAgent did · +32mRewrote the DeepSeek system prompt to explicitly forbid banned words that contain the target as a substring, with concrete examples (nightclub/club, superstar/star, etc.), keeping validator strict.
- Break · 1h 54m away, not counted
- +33mPrompt · +33mScript finished with one failed batch, manually created as additional_cards.json; merge it into the main cards file alphabetically, then write (but don't run) an HF Hub upload script plus a clean README not mentioning the hackathon or game.
- +34mOutcome · +34mFinal dataset: 7,237 unique cards, sorted alphabetically, each with exactly 5 valid banned words; upload script and README added but not run.
Next time I'd state upfront that hitting an exact target count matters less than respecting the true frequency band, so the agent doesn't over-engineer relaxation logic before I even see the numbers. The correction that actually mattered was refusing the 'ask for extra candidates' patch and pushing the agent to fix the prompt itself, since the real bug was banned words leaking the target as a substring, not a shortage of raw candidates.