Skip to content

ssm-lab/dynamic_similarity_thresholds

 
 

Repository files navigation

Genetic Programming for Duplicate Question Detection

Overview

This repository explores the use of Genetic Programming (GP) to detect duplicate questions by evolving interpretable decision functions over similarity features. Instead of relying on a fixed similarity threshold or a single learned model, GP is used to automatically construct and optimize expressions that combine linguistic, semantic, and structural features derived from question pairs. The approach is evaluated on the Quora Duplicate Questions Dataset.


Key Contributions

  • Uses genetic programming to evolve feature-combining expressions and adaptive similarity thresholds.
  • Integrates linguistic, syntactic, semantic, and statistical similarity measures in a unified framework.
  • Treats duplicate detection as a multi-objective optimization problem, balancing predictive performance and model complexity.
  • Provides visual and quantitative analysis of evolved solutions and their trade-offs.

Features

Similarity Feature Set

  • Parts-of-Speech (POS) tag similarity
  • Dependency parsing similarity
  • Sentiment difference (VADER)
  • Synonym overlap
  • N-gram similarity
  • Question length comparison
  • Unique word overlap

Genetic Programming

  • Evolution of symbolic decision expressions over similarity features
  • Multi-objective optimization (e.g., accuracy vs. expression complexity)
  • K-fold cross-validation during fitness evaluation
  • Transparent, interpretable evolved models

Evaluation & Visualization

  • Fitness evolution across generations
  • Pareto fronts of optimal solutions
  • Threshold and expression statistics
  • Confusion matrices and standard performance metrics

Baselines

Performance comparison against:

  • Decision Trees
  • Random Forests
  • Support Vector Machines
  • Linear Regression

Processing Pipeline

  1. Data Preparation
    • Question preprocessing and normalization
  2. Feature Extraction
    • Computation of custom similarity features for question pairs
  3. Genetic Programming Optimization
    • Evolution of decision expressions and thresholds
    • Cross-validated fitness evaluation
  4. Baseline Model Training
    • Training and evaluation of traditional ML classifiers
  5. Analysis & Visualization
    • Comparative performance analysis and interpretability inspection

Technologies Used

Core

  • os, math, random, operator

Data Processing

  • pandas, numpy, scipy, tqdm

Natural Language Processing

  • nltk, spacy, vaderSentiment, TextBlob

Machine Learning

  • scikit-learn, sentence-transformers

Visualization

  • matplotlib, seaborn, networkx

Genetic Programming

  • deap

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 96.1%
  • Python 3.9%