--- 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]) ```python ## Output: * Food * Videogames & Shows * Homestyle * Travel * Health