dstefa's picture
Update README.md
8445047 verified
metadata
license: mit
base_model: roberta-base
tags:
  - topic
  - classification
  - news
  - roberta
metrics:
  - accuracy
  - f1
  - precision
  - recall
datasets:
  - dstefa/New_York_Times_Topics
widget:
  - text: >-
      Olympic champion Kostas Kederis today left hospital ahead of his date with
      IOC inquisitors claiming his innocence and vowing.
    example_title: Sports
  - text: >-
      Although many individuals are doing fever checks to screen for Covid-19,
      many Covid-19 patients never have a fever.
    example_title: Health and Wellness
  - text: Twelve myths about Russia's War in Ukraine exposed
    example_title: Crime
model-index:
  - name: roberta-base_topic_classification_nyt_news
    results:
      - task:
          name: Text Classification
          type: text-classification
        dataset:
          name: New_York_Times_Topics
          type: News
        metrics:
          - type: F1
            name: F1
            value: 0.91
          - type: accuracy
            name: accuracy
            value: 0.91
          - type: precision
            name: precision
            value: 0.91
          - type: recall
            name: recall
            value: 0.91
pipeline_tag: text-classification

roberta-base_topic_classification_nyt_news

This model is a fine-tuned version of roberta-base on the NYT News dataset, which contains 256,000 news titles from articles published from 2000 to the present (https://www.kaggle.com/datasets/aryansingh0909/nyt-articles-21m-2000-present). It achieves the following results on the test set of 51200 cases:

  • Accuracy: 0.91
  • F1: 0.91
  • Precision: 0.91
  • Recall: 0.91

Training data

Training data was classified as follow:

class Description
0 Sports
1 Arts, Culture, and Entertainment
2 Business and Finance
3 Health and Wellness
4 Lifestyle and Fashion
5 Science and Technology
6 Politics
7 Crime

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 5e-05
  • train_batch_size: 8
  • eval_batch_size: 8
  • seed: 42
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: linear
  • lr_scheduler_warmup_steps: 500
  • num_epochs: 5

Training results

Training Loss Epoch Step Validation Loss Accuracy F1 Precision Recall
0.3192 1.0 20480 0.4078 0.8865 0.8859 0.8892 0.8865
0.2863 2.0 40960 0.4271 0.8972 0.8970 0.8982 0.8972
0.1979 3.0 61440 0.3797 0.9094 0.9092 0.9098 0.9094
0.1239 4.0 81920 0.3981 0.9117 0.9113 0.9114 0.9117
0.1472 5.0 102400 0.4033 0.9137 0.9135 0.9134 0.9137

Model performance

- precision recall f1 support
Sports 0.97 0.98 0.97 6400
Arts, Culture, and Entertainment 0.94 0.95 0.94 6400
Business and Finance 0.85 0.84 0.84 6400
Health and Wellness 0.90 0.93 0.91 6400
Lifestyle and Fashion 0.95 0.95 0.95 6400
Science and Technology 0.89 0.83 0.86 6400
Politics 0.93 0.88 0.90 6400
Crime 0.85 0.93 0.89 6400
accuracy 0.91 51200
macro avg 0.91 0.91 0.91 51200
weighted avg 0.91 0.91 0.91 51200

How to use roberta-base_topic_classification_nyt_news with HuggingFace

from transformers import AutoTokenizer, AutoModelForSequenceClassification
from transformers import pipeline

tokenizer = AutoTokenizer.from_pretrained("dstefa/roberta-base_topic_classification_nyt_news")
model = AutoModelForSequenceClassification.from_pretrained("dstefa/roberta-base_topic_classification_nyt_news")
pipe = pipeline("text-classification", model=model, tokenizer=tokenizer)

text = "Kederis proclaims innocence Olympic champion Kostas Kederis today left hospital ahead of his date with IOC inquisitors claiming his innocence and vowing."
pipe(text)

[{'label': 'Sports', 'score': 0.9989326596260071}]

Framework versions

  • Transformers 4.32.1
  • Pytorch 2.1.0+cu121
  • Datasets 2.12.0
  • Tokenizers 0.13.2