File size: 1,862 Bytes
ed74ee7
120d81d
d014508
fe1d8d6
 
 
 
 
 
 
 
 
120d81d
 
ed74ee7
 
d014508
ed74ee7
d014508
 
 
ed74ee7
 
 
d014508
 
ed74ee7
d014508
ed74ee7
 
d014508
ed74ee7
d014508
ed74ee7
d014508
 
 
ed74ee7
d014508
 
 
 
 
963bbd5
6a82144
963bbd5
d014508
 
ed74ee7
d014508
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
---
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 Binary BERT 

This model is a BERT 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 was trained via the binary classification framework. It is intended for zero-shot text classification. 
It was trained 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 zeroshot_classifier.models import BinaryBertCrossEncoder
>>> model = BinaryBertCrossEncoder(model_name='claritylab/zero-shot-implicit-binary-bert')

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

>>> query = [[text, f'{lb} {aspect}'] for lb in labels]
>>> logits = model.predict(query, apply_softmax=True)
>>> print(logits)

[[6.8812753e-04 9.9931192e-01]
 [9.9974447e-01 2.5556990e-04]
 [9.9978167e-01 2.1833177e-04]
 [1.6187031e-03 9.9838126e-01]
 [9.9965131e-01 3.4869535e-04]
 [9.9413908e-01 5.8608940e-03]
 [9.9685740e-01 3.1425431e-03]]
```