Views
No views yet
1from transformers import pipeline, Gemma2ForSequenceClassification, AutoTokenizer
2import numpy as np
3import pandas as pd
4import torch
5
6model_name = "SinclairSchneider/german_politic_direction_gemma-2-9b"
7model = Gemma2ForSequenceClassification.from_pretrained(model_name, dtype=torch.bfloat16)
8tokenizer = AutoTokenizer.from_pretrained(model_name)
9pipe = pipeline("text-classification", model=model, tokenizer=tokenizer, top_k=None)
10
11vectors = np.array([[-1, 0],
12 [-9.99193435e-01, 4.01556900e-02],
13 [-6.85641955e-01, 7.27938947e-01],
14 [ 3.82683432e-01, 9.23879533e-01],
15 [ 8.69790824e-01, 4.93420634e-01],
16 [1, 0]])
17
18def classify(text):
19 classification_result = np.array(pd.DataFrame(pipe(text)[0]).sort_values(by=['label'], key=lambda x: x.map({'DIE LINKE':0,
20 'BÜNDNIS 90/DIE GRÜNEN':1,
21 'SPD':2,
22 'FDP':3,
23 'CDU/CSU':4,
24 'AfD':5}))['score'])
25 return float(np.arctan2(*classification_result@vectors)/(np.pi/2))
26
27#Links
28print(classify("Wir brauchen eine Vermögensteuer, um den Sozialstaat nachhaltig zu finanzieren."))
29#-0.7579781441350503
30print(classify("Mietendeckel und mehr gemeinnütziger Wohnungsbau sollen Wohnen bezahlbar machen."))
31#-0.5542865363754044
32print(classify("Die Energiewende muss mit massiven öffentlichen Investitionen beschleunigt werden."))
33#-0.8654377833290664
34
35
36#Mitte
37print(classify("Die soziale Marktwirtschaft braucht moderne Regeln und weniger Bürokratie."))
38#0.17434606981223796
39print(classify("Gezielte Entlastungen für kleine und mittlere Einkommen stärken die Mitte."))
40#-0.2330142254368861
41print(classify("Bildungsoffensive: Basiskompetenzen sichern, Weiterbildung im Beruf fördern."))
42#-0.26594283263976803
43
44#Rechts
45print(classify("Deutsche Leitkultur und Sprache stärker in öffentlichen Einrichtungen betonen."))
46#0.9844599986211227
47print(classify("Grenzschutz an EU-Außengrenzen verstärken, Sekundärmigration begrenzen."))
48#0.5535496036594191
49print(classify("Identitätspolitik an Schulen und Behörden zurückfahren, Fokus auf Leistungsprinzip."))
50#0.4962447805972327