|
--- |
|
license: mit |
|
--- |
|
# Roberta for German text Classification |
|
|
|
This is a xlm Roberta model finetuned on a German Discourse dataset of 60 discourses having a total over 10k sentences. |
|
|
|
# Understanding the labels |
|
|
|
**Externalization:** Emphasize situational factors that we dont have control over as the cause of behavior. For example "I had a really tough day at work and then when I got home, my cat got sick. It's just been one thing after another and it's really getting to me.". |
|
|
|
**Elicitation:** Emphasize the role of the listener by asking questions or providing prompts. For example "Can you tell me more about what it feels like when you're anxious?". |
|
|
|
**Conflict:** Attribute each other's behavior to dispositional factors (such as being short-sighted or inflexible). For example "You're not thinking about the big picture here!". |
|
|
|
**Acceptance:** Accept the perspectives or experiences of others. For example "It sounds like you had a really hard day". |
|
|
|
**Integration:** Combining multiple perspectives to create a more comprehensive understanding of the behavior of others. For example "What if we combined elements of both proposals to create something that incorporates the best of both worlds?". |
|
|
|
|
|
## How to use the model |
|
|
|
```python |
|
import torch |
|
from transformers import AutoModelForSequenceClassification, AutoTokenizer |
|
|
|
def get_label(sentence): |
|
vectors = tokenizer(sentence, return_tensors='pt').to(device) |
|
outputs = bert_model(**vectors).logits |
|
probs = torch.nn.functional.softmax(outputs, dim = 1)[0] |
|
bert_dict = {} |
|
keys = ['Externalization', 'Elicitation', 'Conflict', 'Acceptence', 'Integration', 'None'] |
|
for i in range(len(keys)): |
|
bert_dict[keys[i]] = round(probs[i].item(), 3) |
|
return bert_dict |
|
|
|
MODEL_NAME = 'RashidNLP/German-Text-Classification' |
|
MODEL_DIR = 'model' |
|
CHECKPOINT_DIR = 'checkpoints' |
|
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') |
|
OUTPUTS = 6 |
|
|
|
bert_model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME, num_labels = OUTPUTS).to(device) |
|
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) |
|
|
|
get_label("Gehst du zum Oktoberfest?") |
|
|
|
``` |