davanstrien's picture
davanstrien HF staff
Add examples for inference widget (#2)
69a4971
metadata
tags:
  - text-classification
  - fastai
library_name: fastai
datasets:
  - blbooksgenre
widget:
  - text: >-
      Poems on various subjects. Whereto is prefixed a short essay on the
      structure of English verse
  - text: >-
      Two Centuries of Soho: its institutions, firms, and amusements. By the
      Clergy of St. Anne's, Soho, J. H. Cardwell ... H. B. Freeman ... G. C.
      Wilton ... assisted by other contributors, etc
  - text: The Adventures of Oliver Twist. [With plates.]

Model description

This model is intended to predict, from the title of a book, whether it is 'fiction' or 'non-fiction'.

This model was trained on data created from the Digitised printed books (18th-19th Century) book collection. The datasets in this collection are comprised and derived from 49,455 digitised books (65,227 volumes), mainly from the 19th Century. This dataset is dominated by English language books and includes books in several other languages in much smaller numbers.

This model was originally developed for use as part of the Living with Machines project to be able to 'segment' this large dataset of books into different categories based on a 'crude' classification of genre i.e. whether the title was fiction or non-fiction.

The model's training data (discussed more below) primarily consists of 19th Century book titles from the British Library Digitised printed books (18th-19th century) collection. These books have been catalogued according to British Library cataloguing practices. The model is likely to perform worse on any book titles from earlier or later periods. While the model is multilingual, it has training data in non-English book titles; these appear much less frequently.

How to use

To use this within fastai, first install version 2 of the fastai library. You can load directly from the Hugging Face hub using the huggingface_hub library.

from fastai import load_learner
from huggingface_hub import hf_hub_download
learn = load_learner(
    hf_hub_download('davanstrien/bl-books-genre-fastai', filename="model.pkl")
    )
learn.predict("Oliver Twist")

Limitations and bias

The model was developed based on data from the British Library's Digitised printed books (18th-19th Century) collection. This dataset is not representative of books from the period covered with biases towards certain types (travel) and a likely absence of books that were difficult to digitise.

The formatting of the British Library books corpus titles may differ from other collections, resulting in worse performance on other collections. It is recommended to evaluate the performance of the model before applying it to your own data. Likely, this model won't perform well for contemporary book titles without further fine-tuning.

Training data

The training data was created using the Zooniverse platform. British Library cataloguers carried out the majority of the annotations used as training data. More information on the process of creating the training data will be available soon.

Training procedure

Model training was carried out using the fastai library version 2.5.2.

The notebook using for training the model is available at: https://github.com/Living-with-machines/genre-classification

Eval result

The model was evaluated on a held out test set:

             precision    recall  f1-score   support

     Fiction       0.91      0.88      0.90       296
 Non-fiction       0.94      0.95      0.95       554

    accuracy                           0.93       850
   macro avg       0.93      0.92      0.92       850
weighted avg       0.93      0.93      0.93       850