Skip to content

A flexible, adaptive classification system for dynamic text classification

License

Notifications You must be signed in to change notification settings

InstaJobs/adaptive-classifier

 
 

Repository files navigation

Adaptive Classifier

A flexible, adaptive classification system that allows for dynamic addition of new classes and continuous learning from examples. Built on top of transformers from HuggingFace, this library provides an easy-to-use interface for creating and updating text classifiers.

Features

  • 🚀 Works with any transformer classification model
  • 📈 Continuous learning capabilities
  • 🎯 Dynamic class addition
  • 💾 Safe and efficient state persistence
  • 🔄 Prototype-based learning
  • 🧠 Neural adaptation layer

Installation

pip install adaptive-classifier

Quick Start

from adaptive_classifier import AdaptiveClassifier

# Initialize with any HuggingFace model
classifier = AdaptiveClassifier("bert-base-uncased")

# Add some examples
texts = [
    "The product works great!",
    "Terrible experience",
    "Neutral about this purchase"
]
labels = ["positive", "negative", "neutral"]

classifier.add_examples(texts, labels)

# Make predictions
predictions = classifier.predict("This is amazing!")
print(predictions)  # [('positive', 0.85), ('neutral', 0.12), ('negative', 0.03)]

# Save the classifier
classifier.save("./my_classifier")

# Load it later
loaded_classifier = AdaptiveClassifier.load("./my_classifier")

Advanced Usage

Adding New Classes Dynamically

# Add a completely new class
new_texts = [
    "Error code 404 appeared",
    "System crashed after update"
]
new_labels = ["technical"] * 2

classifier.add_examples(new_texts, new_labels)

Continuous Learning

# Add more examples to existing classes
more_examples = [
    "Best purchase ever!",
    "Highly recommend this"
]
more_labels = ["positive"] * 2

classifier.add_examples(more_examples, more_labels)

How It Works

The system combines three key components:

  1. Transformer Embeddings: Uses state-of-the-art language models for text representation

  2. Prototype Memory: Maintains class prototypes for quick adaptation to new examples

  3. Adaptive Neural Layer: Learns refined decision boundaries through continuous training

Requirements

  • Python ≥ 3.8
  • PyTorch ≥ 2.0
  • transformers ≥ 4.30.0
  • safetensors ≥ 0.3.1
  • faiss-cpu ≥ 1.7.4 (or faiss-gpu for GPU support)

Citation

If you use this library in your research, please cite:

@software{adaptive_classifier,
  title = {Adaptive Classifier: Dynamic Text Classification with Continuous Learning},
  author = {Asankhaya Sharma},
  year = {2025},
  publisher = {GitHub},
  url = {https://github.com/codelion/adaptive-classifier}
}

About

A flexible, adaptive classification system for dynamic text classification

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%