← all repositories
parulnith/Building-a-Simple-Chatbot-in-Python-using-NLTK

ELIZA's grandchild: a 200-line chatbot in modern Python

A beginner's NLTK notebook that recreates the spirit of 1966's ELIZA without pretending to be smarter than it is.

604 stars Jupyter Notebook Chat AssistantsLearning
Building-a-Simple-Chatbot-in-Python-using-NLTK
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does

This repo is a Jupyter Notebook (plus a plain .py script) that builds a bare-bones chatbot using NLTK’s lemmatizer and tokenization tools. It matches user input against a bag-of-words style setup and returns pre-written responses. The author explicitly calls it “very simple” with “hardly any cognitive skills” — which is refreshingly honest.

The interesting bit

The project leans into its own limitations. Rather than chasing LLM hype, it frames itself as a deliberate throwback to ELIZA’s 200-line psychotherapist trick from 1966. For someone who has just finished an NLTK tutorial and wants to see something conversational actually run, that’s a sensible bridge.

Key highlights

  • Single dependency: NLTK (installs via pip, downloads punkt and wordnet on first run)
  • Two ways to run: Jupyter Notebook with Binder badge, or python chatbot.py in terminal
  • Accompanying Medium blogpost walks through the code step by step
  • 604 stars suggest it hits a nerve with NLP newcomers
  • Author’s stated motivation: “not to create some SOTA chatbot” but to test-drive fresh Python skills

Caveats

  • The README doesn’t explain how the matching actually works — you’ll need to open the notebook to see if it’s keyword spotting, cosine similarity, or something else
  • “Hardly any cognitive skills” is the author’s own assessment; don’t expect context memory or coherent multi-turn dialogue

Verdict

Good for: someone who just installed NLTK and wants a quick win before tackling transformers. Skip if: you need a chatbot that actually understands anything, or you’re looking for production patterns — this is explicitly learning scaffolding, not architecture.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.