Skip to content

Latest commit

Β 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“„ Resume Screening β€” NLP Classification

Python scikit-learn NLTK

A machine-learning project that automates resume screening: it cleans raw resume text, converts it to TF-IDF features, and classifies each resume into one of 25 job categories β€” turning hours of manual sorting into seconds.


🧠 How It Works (notebook pipeline)

  1. Load resume_dataset.csv (resume text + job category).
  2. Explore the data β€” category counts, a count-plot, and a category-distribution pie chart.
  3. Clean each resume with a regex function (cleanResume) that strips URLs, mentions, hashtags, RT/cc, punctuation, and non-ASCII characters.
  4. Analyze text with NLTK β€” stop-word removal, word_tokenize, a FreqDist of the 50 most common words, and a word cloud.
  5. Encode the Category target with LabelEncoder.
  6. Vectorize the cleaned text with TF-IDF (TfidfVectorizer, sublinear_tf=True, English stop-words, max_features=1500).
  7. Split 80/20 (random_state=0) and train a OneVsRestClassifier(KNeighborsClassifier()).
  8. Evaluate with accuracy scores and a classification report.

πŸ“ˆ Results

Metric Score
Training accuracy 0.84
Test accuracy 0.82

Evaluated with scikit-learn's classification_report (precision / recall / F1 per category).


πŸ› οΈ Tools & Libraries

Python Β· scikit-learn (TfidfVectorizer, OneVsRestClassifier, KNeighborsClassifier, LabelEncoder, train_test_split) Β· NLTK Β· wordcloud Β· pandas Β· NumPy Β· matplotlib Β· seaborn Β· re (regex) Β· Jupyter Notebook


πŸ“ Project Structure

Resume-Screening/
β”œβ”€β”€ Resume_Screening.ipynb   # Full NLP + classification notebook
β”œβ”€β”€ resume_dataset.csv       # Resumes labelled by job category (25 classes)
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ SETUP_GUIDE.md
β”œβ”€β”€ setup.bat / setup.sh     # Environment setup scripts
└── settings.json

πŸš€ Run It

pip install -r requirements.txt
jupyter notebook Resume_Screening.ipynb

First run downloads the required NLTK corpora:

import nltk
nltk.download('stopwords')
nltk.download('punkt')

Dependencies: numpy, pandas, matplotlib, seaborn, scipy, scikit-learn, nltk, wordcloud, jupyter, ipykernel.


πŸ“„ License

MIT

About

Machine Learning Project on Resume Screening using Python.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages