|
--- |
|
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 |