Skip to content

A flexible, adaptive classification system for dynamic text classification

License

Notifications You must be signed in to change notification settings

sugatoray/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 classifier model
  • 📈 Continuous learning capabilities
  • 🎯 Dynamic class addition
  • 💾 Safe and efficient state persistence
  • 🔄 Prototype-based learning
  • 🧠 Neural adaptation layer

Try Now

Use Case Demonstrates Link
Basic Example (Cat or Dog) Continuous learning Open In Colab
Support Ticket Classification Realistic examples Open In Colab
Query Classification Different configurations Open In Colab
Multilingual Sentiment Analysis Ensemble of classifiers Open In Colab
Product Category Classification Batch processing Open In Colab

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)

References

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%