--- library_name: zeroshot_classifier tags: - transformers - sentence-transformers - zeroshot_classifier license: mit datasets: - claritylab/UTCD language: - en pipeline_tag: zero-shot-classification metrics: - accuracy --- # Zero-shot Implicit Bi-Encoder This is a [sentence-transformers](https://www.SBERT.net) model. It was introduced in the Findings of ACL'23 Paper **Label Agnostic Pre-training for Zero-shot Text Classification** by ***Christopher Clarke, Yuzhao Heng, Yiping Kang, Krisztian Flautner, Lingjia Tang and Jason Mars***. The code for training and evaluating this model can be found [here](https://github.com/ChrisIsKing/zero-shot-text-classification/tree/master). ## Model description This model is intended for zero-shot text classification. It was trained under the dual encoding classification framework via implicit training with the aspect-normalized [UTCD](https://huggingface.co/datasets/claritylab/UTCD) dataset. - **Finetuned from model:** [`bert-base-uncased`](https://huggingface.co/bert-base-uncased) ## Usage You can use the model like this: ```python >>> from sentence_transformers import SentenceTransformer, util as sbert_util >>> model = SentenceTransformer(model_name_or_path='claritylab/zero-shot-implicit-bi-encoder') >>> text = "I'd like to have this track onto my Classical Relaxations playlist." >>> labels = [ >>> 'Add To Playlist', 'Book Restaurant', 'Get Weather', 'Play Music', 'Rate Book', 'Search Creative Work', >>> 'Search Screening Event' >>> ] >>> aspect = 'intent' >>> aspect_sep_token = model.tokenizer.additional_special_tokens[0] >>> text = f'{aspect} {aspect_sep_token} {text}' >>> text_embed = model.encode(text) >>> label_embeds = model.encode(labels) >>> scores = [sbert_util.cos_sim(text_embed, lb_embed).item() for lb_embed in label_embeds] >>> print(scores) [ 0.7989747524261475, 0.003968147560954094, 0.027803801000118256, 0.9257574081420898, 0.1492517590522766, 0.010640474036335945, 0.012045462615787983 ] ```