B.Sc. Computer Science Final Seminar Project.
This project explores methods for distinguishing AI-generated text from human-written text using a progression of Natural Language Processing (NLP) and Machine Learning techniques.
The objective was to investigate whether machine learning models can identify patterns that differentiate AI-generated content from human-authored content and compare the effectiveness of classical and modern NLP approaches.
The project uses the Kaggle "AI vs Human Text" dataset and includes:
- Data validation and preprocessing
- Length-based filtering
- Exploratory Data Analysis (EDA)
- Text visualization techniques
- Bag of Words (BoW)
- Multinomial Naive Bayes
- SentenceTransformers (all-MiniLM-L6-v2)
- XGBoost
- BERT
- PyTorch
- Hugging Face Transformers
- TF-IDF feature filtering
- Named Entity Recognition (NER) using spaCy
- Ensemble ("Mega Model") weighted voting approach
- Model agreement/disagreement analysis
- Python
- pandas
- scikit-learn
- matplotlib
- SentenceTransformers
- XGBoost
- PyTorch
- Hugging Face Transformers
- spaCy
AI_vs_Human_Text.ipynb- Original Google Colab notebookAI_vs_Human_Text.py- Python export of the notebook
Developed as a joint B.Sc. seminar project.
Contributors:
- Ido Davidi
- yvcode