Instructions to use PavanDeepak/Topic_Classification with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use PavanDeepak/Topic_Classification with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="PavanDeepak/Topic_Classification")# Load model directly from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("PavanDeepak/Topic_Classification") model = AutoModelForSequenceClassification.from_pretrained("PavanDeepak/Topic_Classification", device_map="auto") - Notebooks
- Google Colab
- Kaggle
| license: mit | |
| ## BERT-based Text Classification Model | |
| This model is a fine-tuned version of the bert-base-uncased model, specifically adapted for text classification across a diverse set of categories. The model has been trained on a dataset collected from multiple sources, including the News Category Dataset on Kaggle and various other websites. | |
| The model classifies text into one of the following 12 categories: | |
| * Food | |
| * Videogames & Shows | |
| * Kids and fun | |
| * Homestyle | |
| * Travel | |
| * Health | |
| * Charity | |
| * Electronics & Technology | |
| * Sports | |
| * Cultural & Music | |
| * Education | |
| * Convenience | |
| The model has demonstrated robust performance with an accuracy of 0.721459, F1 score of 0.659451, precision of 0.707620, and recall of 0.635155. | |
| ## Model Architecture | |
| The model leverages the BertForSequenceClassification architecture, It has been fine-tuned on the aforementioned dataset, with the following key configuration parameters: | |
| * Hidden size: 768 | |
| * Number of attention heads: 12 | |
| * Number of hidden layers: 12 | |
| * Max position embeddings: 512 | |
| * Type vocab size: 2 | |
| * Vocab size: 30522 | |
| * The model uses the GELU activation function in its hidden layers and applies dropout with a probability of 0.1 to the attention probabilities to prevent overfitting. | |
| ## Example | |
| ```python | |
| from transformers import AutoModelForSequenceClassification, AutoTokenizer | |
| import numpy as np | |
| from scipy.special import expit | |
| MODEL = "PavanDeepak/Topic_Classification" | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL) | |
| model = AutoModelForSequenceClassification.from_pretrained(MODEL) | |
| class_mapping = model.config.id2label | |
| text = "I love chicken manchuria" | |
| tokens = tokenizer(text, return_tensors="pt") | |
| output = model(**tokens) | |
| scores = output.logits[0][0].detach().numpy() | |
| scores = expit(scores) | |
| predictions = (scores >= 0.5) * 1 | |
| for i in range(len(predictions)): | |
| if predictions[i]: | |
| print(class_mapping[i]) | |
| ``` | |
| ## Output: | |
| * Food | |
| * Videogames & Shows | |
| * Homestyle | |
| * Travel | |
| * Health |