|
|
--- |
|
|
language: en |
|
|
license: mit |
|
|
tags: |
|
|
- text-classification |
|
|
- intent-classification |
|
|
- contact-management |
|
|
- roberta |
|
|
base_model: roberta-base |
|
|
datasets: |
|
|
- custom |
|
|
model-index: |
|
|
- name: assistant-bot-intent-classifier |
|
|
results: |
|
|
- task: |
|
|
type: text-classification |
|
|
name: Intent Classification |
|
|
metrics: |
|
|
- type: accuracy |
|
|
value: 0.95 |
|
|
name: Accuracy |
|
|
--- |
|
|
|
|
|
# Intent Classifier for Contact Management Assistant Bot |
|
|
|
|
|
This model is a fine-tuned RoBERTa-base model for intent classification in contact management tasks. |
|
|
|
|
|
## Model Description |
|
|
|
|
|
- **Developed by:** Mykyta Kotenko |
|
|
- **Base Model:** [roberta-base](https://huggingface.co/roberta-base) by Facebook AI |
|
|
- **Task:** Text Classification (Intent Recognition) |
|
|
- **Language:** English |
|
|
- **License:** MIT |
|
|
|
|
|
## Supported Intents |
|
|
|
|
|
This model recognizes 15+ different intents for contact management: |
|
|
|
|
|
### Contact Management |
|
|
- `add_contact` - Add new contact with name, phone, email, address, birthday |
|
|
- `edit_phone` - Update contact's phone number |
|
|
- `edit_email` - Update contact's email address |
|
|
- `edit_address` - Update contact's address |
|
|
- `delete_contact` - Delete a contact |
|
|
- `show_contact` - Show details of a specific contact |
|
|
- `show_contacts` - List all contacts |
|
|
- `search_contacts` - Search for contacts |
|
|
|
|
|
### Notes |
|
|
- `add_note` - Add a note to a contact |
|
|
- `show_notes` - Show all notes or notes for a contact |
|
|
- `edit_note` - Edit an existing note |
|
|
- `delete_note` - Delete a note |
|
|
|
|
|
### Tags |
|
|
- `add_tag` - Add a tag to a contact |
|
|
- `remove_tag` - Remove a tag from a contact |
|
|
|
|
|
### Other |
|
|
- `show_birthdays` - Show upcoming birthdays |
|
|
- `help` - Show help message |
|
|
- `exit` - Exit the application |
|
|
|
|
|
## Usage |
|
|
|
|
|
```python |
|
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline |
|
|
|
|
|
# Load model and tokenizer |
|
|
tokenizer = AutoTokenizer.from_pretrained("kms-engineer/assistant-bot-intent-classifier") |
|
|
model = AutoModelForSequenceClassification.from_pretrained("kms-engineer/assistant-bot-intent-classifier") |
|
|
|
|
|
# Create classification pipeline |
|
|
classifier = pipeline("text-classification", model=model, tokenizer=tokenizer) |
|
|
|
|
|
# Classify intent |
|
|
text = "add contact John Smith 212-555-0123 [email protected]" |
|
|
result = classifier(text) |
|
|
print(result) |
|
|
# Output: [{'label': 'add_contact', 'score': 0.98}] |
|
|
|
|
|
# More examples |
|
|
examples = [ |
|
|
"update phone for Sarah to 555-1234", |
|
|
"show all my contacts", |
|
|
"delete contact Bob", |
|
|
"add note for Alice: Call back tomorrow" |
|
|
] |
|
|
|
|
|
for text in examples: |
|
|
result = classifier(text) |
|
|
print(f"{text} → {result[0]['label']} ({result[0]['score']:.2f})") |
|
|
``` |
|
|
|
|
|
## Training Details |
|
|
|
|
|
- **Base Model:** roberta-base |
|
|
- **Training Dataset:** Custom dataset with contact management commands |
|
|
- **Learning Rate:** 2e-5 |
|
|
- **Batch Size:** 16 |
|
|
- **Epochs:** 3-5 |
|
|
- **Optimizer:** AdamW |
|
|
|
|
|
## Intended Use |
|
|
|
|
|
This model is designed for: |
|
|
- Contact management applications |
|
|
- Personal assistant bots |
|
|
- CRM systems with natural language interface |
|
|
- Voice-controlled contact management |
|
|
|
|
|
## Limitations |
|
|
|
|
|
- Optimized for English language only |
|
|
- Best performance on contact management domain |
|
|
- May not generalize well to other domains without fine-tuning |
|
|
|
|
|
## Example Predictions |
|
|
|
|
|
``` |
|
|
Input: "add new contact John Doe 555-1234 [email protected]" |
|
|
Output: add_contact (confidence: 0.99) |
|
|
|
|
|
Input: "change email for Sarah to [email protected]" |
|
|
Output: edit_email (confidence: 0.97) |
|
|
|
|
|
Input: "show me all contacts" |
|
|
Output: show_contacts (confidence: 0.98) |
|
|
|
|
|
Input: "delete contact Bob" |
|
|
Output: delete_contact (confidence: 0.96) |
|
|
|
|
|
Input: "add tag 'work' to Alice" |
|
|
Output: add_tag (confidence: 0.95) |
|
|
``` |
|
|
|
|
|
## Model Architecture |
|
|
|
|
|
Based on RoBERTa (Robustly Optimized BERT Pretraining Approach): |
|
|
- 12 transformer layers |
|
|
- 768 hidden dimensions |
|
|
- 12 attention heads |
|
|
- ~125M parameters |
|
|
|
|
|
## Citation |
|
|
|
|
|
If you use this model, please cite: |
|
|
|
|
|
```bibtex |
|
|
@misc{kotenko2025intentclassifier, |
|
|
author = {Kotenko, Mykyta}, |
|
|
title = {Intent Classifier for Contact Management Assistant Bot}, |
|
|
year = {2025}, |
|
|
publisher = {Hugging Face}, |
|
|
howpublished = {\url{https://huggingface.co/kms-engineer/assistant-bot-intent-classifier}}, |
|
|
note = {Based on RoBERTa by Facebook AI} |
|
|
} |
|
|
``` |
|
|
|
|
|
## Acknowledgments |
|
|
|
|
|
- **Base Model:** RoBERTa by Facebook AI Research |
|
|
- **Framework:** Hugging Face Transformers |
|
|
- **Inspiration:** Contact management and personal assistant applications |
|
|
|
|
|
## License |
|
|
|
|
|
MIT License - See LICENSE file for details. |
|
|
|
|
|
This model is a derivative work based on RoBERTa, which is licensed under MIT License by Facebook, Inc. |
|
|
|
|
|
## Contact |
|
|
|
|
|
- **Author:** Mykyta Kotenko |
|
|
- **Repository:** [assistant-bot](https://github.com/kms-engineer/assistant-bot) |
|
|
- **Issues:** Please report issues on GitHub |
|
|
|