|
--- |
|
language: |
|
- he |
|
pipeline_tag: zero-shot-classification |
|
datasets: |
|
- HeTree/MevakerConcTree |
|
license: apache-2.0 |
|
widget: |
|
- text: "בשבוע שעבר שדרגתי את גרסת הטלפון שלי ." |
|
candidate_labels: "נייד לשיחות , חיוב חשבון , חולה על כדורגל" |
|
multi_class: false |
|
example_title: "שדרוג מכשיר" |
|
--- |
|
|
|
# Hebrew Cross-Encoder Model |
|
|
|
## Usage |
|
```python |
|
from sentence_transformers import CrossEncoder |
|
model = CrossEncoder('HeTree/HeCross') |
|
|
|
# Scores (already after sigmoid) |
|
scores = model.predict([('כמה אנשים חיים בברלין?', 'ברלין מונה 3,520,031 תושבים רשומים בשטח של 891.82 קמ"ר.'), |
|
('כמה אנשים חיים בברלין?', 'העיר ניו יורק מפורסמת בזכות מוזיאון המטרופוליטן לאומנות.')]) |
|
print(scores) |
|
``` |
|
|
|
## Usage with Transformers AutoModel |
|
You can use the model also directly with Transformers library (without SentenceTransformers library): |
|
```python |
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification |
|
import torch |
|
import numpy as np |
|
|
|
# Function that applies sigmoid to a score |
|
def sigmoid(x): |
|
return 1 / (1 + np.exp(-x)) |
|
|
|
model = AutoModelForSequenceClassification.from_pretrained('HeTree/HeCross') |
|
tokenizer = AutoTokenizer.from_pretrained('HeTree/HeCross') |
|
features = tokenizer(['כמה אנשים חיים בברלין?', 'כמה אנשים חיים בברלין?'], |
|
['ברלין מונה 3,520,031 תושבים רשומים בשטח של 891.82 קמ"ר.', 'העיר ניו יורק מפורסמת בזכות מוזיאון המטרופוליטן לאומנות.'], |
|
padding=True, truncation=True, return_tensors="pt") |
|
model.eval() |
|
with torch.no_grad(): |
|
scores = sigmoid(model(**features).logits) |
|
print(scores) |
|
``` |
|
|
|
## Zero-Shot Classification |
|
This model can also be used for zero-shot-classification: |
|
```python |
|
from transformers import pipeline |
|
classifier = pipeline("zero-shot-classification", model='HeTree/HeCross') |
|
sent = "בשבוע שעבר שדרגתי את גרסת הטלפון שלי ." |
|
candidate_labels = ["נייד לשיחות", "אתר", "חיוב חשבון", "גישה לחשבון בנק"] |
|
res = classifier(sent, candidate_labels) |
|
print(res) |
|
``` |
|
|
|
### Citing |
|
|
|
If you use HeCross in your research, please cite [Mevaker: Conclusion Extraction and Allocation Resources for the Hebrew Language](https://arxiv.org/abs/2403.09719). |
|
``` |
|
@article{shalumov2024mevaker, |
|
title={Mevaker: Conclusion Extraction and Allocation Resources for the Hebrew Language}, |
|
author={Vitaly Shalumov and Harel Haskey and Yuval Solaz}, |
|
year={2024}, |
|
eprint={2403.09719}, |
|
archivePrefix={arXiv}, |
|
primaryClass={cs.CL} |
|
} |
|
``` |