| import gradio as gr | |
| from transformers import pipeline | |
| from transformers import AutoTokenizer, AutoModelForSequenceClassification | |
| sample_text = [ | |
| [ | |
| "Poems on various subjects. Whereto is prefixed a short essay on the structure of English verse" | |
| ], | |
| [ | |
| "Journal of a Residence in China and the neighbouring countries from 1830 to 1833. With an introductory essay by the Hon. and Rev. Baptist Wriothesley Noel. [With a map.]" | |
| ], | |
| ["The Adventures of Oliver Twist. [With plates.]"], | |
| ["['The Adventures of Sherlock Holmes', 'Single Works']"], | |
| [ | |
| "['Coal, Iron, and Oil; or, the Practical American miner. A plain and popular work on our mines and mineral resources ... With numerous maps and engravings, etc']" | |
| ], | |
| [ | |
| "Summer Travelling in Iceland; being the narrative of two journeys across the island ... With a chapter on Askja by E. Delmar Morgan ... Containing also a literal translation of three sagas. Maps, etc'" | |
| ], | |
| [ | |
| "Histoire de France au moyen aÃÇge, depuis Philippe-Auguste jusqu'aÃÄ la fin du reÃÄgne de Louis XI. 1223-1483. Troisieme eÃÅdition" | |
| ], | |
| [ | |
| "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" | |
| ], | |
| ["""A Christmas Carol"""], | |
| ] | |
| description = """ | |
| British Library Books genre detection model | |
| """ | |
| tokenizer = AutoTokenizer.from_pretrained("BritishLibraryLabs/bl-books-genre") | |
| model = AutoModelForSequenceClassification.from_pretrained("BritishLibraryLabs/bl-books-genre") | |
| classifier = pipeline('text-classification',model=model, tokenizer=tokenizer, return_all_scores=True) | |
| def predict(text): | |
| predictions = classifier(text) | |
| return {pred['label']: pred['score'] for pred in predictions[0]} | |
| gr.Interface(predict, | |
| inputs=gr.inputs.Textbox(label="Book title"), | |
| outputs=gr.outputs.Label(label="Predicted genre"), | |
| interpretation='shap', | |
| examples=sample_text,description=description, | |
| ).launch(enable_queue=True) | |