maettubfh commited on
Commit
70533e9
β€’
1 Parent(s): 7408f28

allows to read tabs from yaml

Browse files
app.py CHANGED
@@ -1,40 +1,5 @@
1
- import gradio as gr
2
 
3
- from src.nlp_circle_demo.interface import GradioInterfaceWrapper, GradioTabWrapper
4
-
5
-
6
- robertaGer = GradioInterfaceWrapper.from_yaml(
7
- "resources/legal_german_roberta_interface.yml"
8
- )
9
- gbert = GradioInterfaceWrapper.from_yaml("resources/gbert_interface.yml")
10
-
11
- legalInterface = GradioTabWrapper.from_interface_list("Legal", [robertaGer, gbert])
12
-
13
-
14
- ner = GradioInterfaceWrapper.from_yaml("resources/ner_interface.yml")
15
-
16
- zeroShot = GradioInterfaceWrapper.from_yaml("resources/zero_shot_interface.yml")
17
-
18
- qaInterface = GradioInterfaceWrapper.from_yaml("resources/qa_interface.yml")
19
- simplicationInterface = GradioInterfaceWrapper.from_yaml(
20
- "resources/simplification_interface.yml"
21
- )
22
- gptInterface = GradioInterfaceWrapper.from_yaml("resources/gpt2_interface.yml")
23
- summarizationInterface = GradioInterfaceWrapper.from_yaml(
24
- "resources/summarization_interface.yml"
25
- )
26
-
27
-
28
- demo = GradioTabWrapper.from_interface_list(
29
- "NLP Demo-Seite",
30
- [
31
- gptInterface,
32
- legalInterface,
33
- qaInterface,
34
- summarizationInterface,
35
- simplicationInterface,
36
- ner,
37
- zeroShot,
38
- ],
39
- )
40
- demo.launch()
 
1
+ from nlp_circle_demo.wrapped_gradio_objects import GradioTabWrapper
2
 
3
+ if __name__ == "__main__":
4
+ demo = GradioTabWrapper.from_yaml("resources/tabs/app_tab.yml")
5
+ demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
resources/{gbert_interface.yml β†’ interfaces/gbert_interface.yml} RENAMED
@@ -1,12 +1,12 @@
1
  title: German BERT
2
  name: huggingface/deepset/gbert-large
3
- description: >
4
  Hier zeigen wir ein Vergleichsmodell, welches ebenfalls maskierte WΓΆrter (hier mit dem Stichwort [Mask]) zu erraten
5
  versucht. Dieses Modell wurde allerdings nicht auf rechtliche Sprache spezialisiert, weshalb die prognostizierten
6
  WΓΆrter deutlich weniger spezifisch sind. Beide Modelle haben 354 Millionen Parameter.
7
  examples:
8
  # This is how we can do nested lists
9
- - >
10
- Die BeschwerdefΓΌhrerin rΓΌgt sodann eine Verletzung des VerhΓ€ltnismΓ€ssigkeitsprinzips. Sie ist der
11
- Auffassung, dass die PublikationstΓ€tigkeit der WEKO den Grundsatz der [MASK] gemΓ€ss Art. 5 Abs. 2
12
  und Art. 36 BV wahren mΓΌsse.
 
1
  title: German BERT
2
  name: huggingface/deepset/gbert-large
3
+ description: >
4
  Hier zeigen wir ein Vergleichsmodell, welches ebenfalls maskierte WΓΆrter (hier mit dem Stichwort [Mask]) zu erraten
5
  versucht. Dieses Modell wurde allerdings nicht auf rechtliche Sprache spezialisiert, weshalb die prognostizierten
6
  WΓΆrter deutlich weniger spezifisch sind. Beide Modelle haben 354 Millionen Parameter.
7
  examples:
8
  # This is how we can do nested lists
9
+ - >
10
+ Die BeschwerdefΓΌhrerin rΓΌgt sodann eine Verletzung des VerhΓ€ltnismΓ€ssigkeitsprinzips. Sie ist der
11
+ Auffassung, dass die PublikationstΓ€tigkeit der WEKO den Grundsatz der [MASK] gemΓ€ss Art. 5 Abs. 2
12
  und Art. 36 BV wahren mΓΌsse.
resources/{gpt2_interface.yml β†’ interfaces/gpt2_interface.yml} RENAMED
@@ -1,11 +1,11 @@
1
  title: GPT2 # will be used as tab title and for the link.
2
  name: huggingface/gpt2 # path to model
3
- description: >
4
- GPT-3.5, auf dem ChatGPT beruht. Das Modell vervollstΓ€ndigt eingegebene Texte, in dem
5
- es immer ein wahrscheinliches nΓ€chstes Wort voraussagt. Allerdings hat es auch einen
6
- kleinen Zufallsfaktor, damit der gleiche Input nicht immer das gleiche Resultat liefern.
7
- Das hier vorgestellte deutschsprachige GPT-2 Modell hat 124 Millionen Parameter, ist also
8
  1400x kleiner als ChatGPT - und somit auch erkennbar schlechter in der Textgenerierung.
9
  examples:
10
  - Paris is the capital of
11
- - Auf Deutsch funktioniert das Modell deutlich
 
1
  title: GPT2 # will be used as tab title and for the link.
2
  name: huggingface/gpt2 # path to model
3
+ description: >
4
+ GPT-3.5, auf dem ChatGPT beruht. Das Modell vervollstΓ€ndigt eingegebene Texte, in dem
5
+ es immer ein wahrscheinliches nΓ€chstes Wort voraussagt. Allerdings hat es auch einen
6
+ kleinen Zufallsfaktor, damit der gleiche Input nicht immer das gleiche Resultat liefern.
7
+ Das hier vorgestellte deutschsprachige GPT-2 Modell hat 124 Millionen Parameter, ist also
8
  1400x kleiner als ChatGPT - und somit auch erkennbar schlechter in der Textgenerierung.
9
  examples:
10
  - Paris is the capital of
11
+ - Auf Deutsch funktioniert das Modell deutlich
resources/{legal_german_roberta_interface.yml β†’ interfaces/legal_german_roberta_interface.yml} RENAMED
@@ -1,16 +1,16 @@
1
  title: Legal German RoBERTa
2
  name: huggingface/joelito/legal-german-roberta-large
3
- description: >
4
- Hier zeigen wir ein Modell, welches an unserem Institut darauf vortrainiert wurde, die rechtliche Sprache
5
- besser zu verstehen. Dabei wird in einem Text immer ein Wort (mit dem Stichwort <mask>) maskiert, und das
6
- Modell muss das fehlende Wort voraussagen. Dadurch, dass das Modell auf die rechtliche Sprache spezifiziert
7
- wurde, sind die Voraussagen deutlich besser, wie das nachfolgende Beispiel zeigt (BGE 142 II 268 S. 271,
8
- ErwΓ€gung 4.1): Unser spezialisiertes Modell gibt richtigerweise das Wort β€œVerhΓ€ltnismΓ€ssigkeit” aus, wΓ€hrend
9
- ein generisches Modell (im anderen Tab) deutlich allgemeinere WΓΆrter wie Freiheit, Demokratie oder Γ–ffentlichkeit
10
  voraussagt. Beide Modelle haben 354 Millionen Parameter.
11
  examples:
12
  # This is how we can do nested lists
13
- - >
14
- Die BeschwerdefΓΌhrerin rΓΌgt sodann eine Verletzung des VerhΓ€ltnismΓ€ssigkeitsprinzips. Sie ist der
15
- Auffassung, dass die PublikationstΓ€tigkeit der WEKO den Grundsatz der <mask> gemΓ€ss Art. 5 Abs. 2
16
  und Art. 36 BV wahren mΓΌsse.
 
1
  title: Legal German RoBERTa
2
  name: huggingface/joelito/legal-german-roberta-large
3
+ description: >
4
+ Hier zeigen wir ein Modell, welches an unserem Institut darauf vortrainiert wurde, die rechtliche Sprache
5
+ besser zu verstehen. Dabei wird in einem Text immer ein Wort (mit dem Stichwort <mask>) maskiert, und das
6
+ Modell muss das fehlende Wort voraussagen. Dadurch, dass das Modell auf die rechtliche Sprache spezifiziert
7
+ wurde, sind die Voraussagen deutlich besser, wie das nachfolgende Beispiel zeigt (BGE 142 II 268 S. 271,
8
+ ErwΓ€gung 4.1): Unser spezialisiertes Modell gibt richtigerweise das Wort β€œVerhΓ€ltnismΓ€ssigkeit” aus, wΓ€hrend
9
+ ein generisches Modell (im anderen Tab) deutlich allgemeinere WΓΆrter wie Freiheit, Demokratie oder Γ–ffentlichkeit
10
  voraussagt. Beide Modelle haben 354 Millionen Parameter.
11
  examples:
12
  # This is how we can do nested lists
13
+ - >
14
+ Die BeschwerdefΓΌhrerin rΓΌgt sodann eine Verletzung des VerhΓ€ltnismΓ€ssigkeitsprinzips. Sie ist der
15
+ Auffassung, dass die PublikationstΓ€tigkeit der WEKO den Grundsatz der <mask> gemΓ€ss Art. 5 Abs. 2
16
  und Art. 36 BV wahren mΓΌsse.
resources/{ner_interface.yml β†’ interfaces/ner_interface.yml} RENAMED
@@ -1,14 +1,13 @@
1
  title: Named Entity Recognition # will be used as tab title and for the link.
2
  name: huggingface/harshildarji/gbert-legal-ner # path to model
3
  description: >
4
- Bei dieser Aufgabe geht es darum, automatisch Eigennamen oder EntitΓ€ten, engl. named entities,
5
- in einem Text zu erkennen und einer Klasse zuzuordnen. So wΓ€re beispielsweise Max Mustermann ein
6
- Eigenname der Klasse Person; Berner Fachhochschule wΓ€re ein Eigenname der Klasse Organisation. Das
7
- hier verwendete Beispielmodell wurde auf juristische Texte des Deutschen trainiert und erkennt
8
- Eigennamen, die fΓΌr die juristischen DomΓ€ne relevant sind, wie zum Beispiel Lawyer (= Anwalt) oder
9
  Law (=Gesetz).'
10
  examples:
11
  - >
12
- 1. Das Bundesarbeitsgericht ist gemÀß § 9 Abs. 2 Satz 2 ArbGG iVm. § 201 Abs. 1 Satz 2 GVG für
13
  die beabsichtigte Klage gegen den Bund zustΓ€ndig.
14
-
 
1
  title: Named Entity Recognition # will be used as tab title and for the link.
2
  name: huggingface/harshildarji/gbert-legal-ner # path to model
3
  description: >
4
+ Bei dieser Aufgabe geht es darum, automatisch Eigennamen oder EntitΓ€ten, engl. named entities,
5
+ in einem Text zu erkennen und einer Klasse zuzuordnen. So wΓ€re beispielsweise Max Mustermann ein
6
+ Eigenname der Klasse Person; Berner Fachhochschule wΓ€re ein Eigenname der Klasse Organisation. Das
7
+ hier verwendete Beispielmodell wurde auf juristische Texte des Deutschen trainiert und erkennt
8
+ Eigennamen, die fΓΌr die juristischen DomΓ€ne relevant sind, wie zum Beispiel Lawyer (= Anwalt) oder
9
  Law (=Gesetz).'
10
  examples:
11
  - >
12
+ 1. Das Bundesarbeitsgericht ist gemÀß § 9 Abs. 2 Satz 2 ArbGG iVm. § 201 Abs. 1 Satz 2 GVG für
13
  die beabsichtigte Klage gegen den Bund zustΓ€ndig.
 
resources/{qa_interface.yml β†’ interfaces/qa_interface.yml} RENAMED
@@ -1,24 +1,24 @@
1
  title: Question Answering
2
  name: huggingface/deepset/gelectra-large-germanquad
3
  description: >
4
- Dieses deutschsprachige Modell wurde darauf spezialisiert, in einem Text die Antwort auf eine
5
- gestellte Frage zu finden. Es basiert auf XLM-RoBERTa, einem mehrsprachigen Modell mit 270
6
  Millionen Parameter.
7
  examples:
8
- -
9
  - Mein Name ist Wolfgang und ich lebe in Berlin
10
  - Wo wohne ich?
11
- -
12
  - >
13
- Der Amazonas-Regenwald, auf Englisch auch als Amazonien oder Amazonas-Dschungel bekannt,
14
- ist ein feuchter Laubwald, der den grâßten Teil des Amazonas-Beckens Südamerikas bedeckt.
15
- Dieses Becken umfasst 7.000.000 Quadratkilometer (2.700.000 Quadratmeilen), von denen
16
- 5.500.000 Quadratkilometer (2.100.000 Quadratmeilen) vom Regenwald bedeckt sind. Diese
17
- Region umfasst Gebiete von neun Nationen. Der grâßte Teil des Waldes befindet sich in
18
- Brasilien mit 60% des Regenwaldes, gefolgt von Peru mit 13%, Kolumbien mit 10% und geringen
19
- Mengen in Venezuela, Ecuador, Bolivien, Guyana, Suriname und FranzΓΆsisch-Guayana. Staaten
20
- oder Abteilungen in vier Nationen enthalten \"Amazonas\" in ihren Namen. Der Amazonas
21
- reprΓ€sentiert mehr als die HΓ€lfte der verbleibenden RegenwΓ€lder des Planeten und umfasst
22
- den grâßten und artenreichsten tropischen Regenwald der Welt mit geschÀtzten 390 Milliarden
23
  EinzelbΓ€umen, die in 16.000 Arten unterteilt sind.
24
  - Welcher Name wird auch verwendet, um den Amazonas-Regenwald auf Englisch zu beschreiben?
 
1
  title: Question Answering
2
  name: huggingface/deepset/gelectra-large-germanquad
3
  description: >
4
+ Dieses deutschsprachige Modell wurde darauf spezialisiert, in einem Text die Antwort auf eine
5
+ gestellte Frage zu finden. Es basiert auf XLM-RoBERTa, einem mehrsprachigen Modell mit 270
6
  Millionen Parameter.
7
  examples:
8
+ -
9
  - Mein Name ist Wolfgang und ich lebe in Berlin
10
  - Wo wohne ich?
11
+ -
12
  - >
13
+ Der Amazonas-Regenwald, auf Englisch auch als Amazonien oder Amazonas-Dschungel bekannt,
14
+ ist ein feuchter Laubwald, der den grâßten Teil des Amazonas-Beckens Südamerikas bedeckt.
15
+ Dieses Becken umfasst 7.000.000 Quadratkilometer (2.700.000 Quadratmeilen), von denen
16
+ 5.500.000 Quadratkilometer (2.100.000 Quadratmeilen) vom Regenwald bedeckt sind. Diese
17
+ Region umfasst Gebiete von neun Nationen. Der grâßte Teil des Waldes befindet sich in
18
+ Brasilien mit 60% des Regenwaldes, gefolgt von Peru mit 13%, Kolumbien mit 10% und geringen
19
+ Mengen in Venezuela, Ecuador, Bolivien, Guyana, Suriname und FranzΓΆsisch-Guayana. Staaten
20
+ oder Abteilungen in vier Nationen enthalten \"Amazonas\" in ihren Namen. Der Amazonas
21
+ reprΓ€sentiert mehr als die HΓ€lfte der verbleibenden RegenwΓ€lder des Planeten und umfasst
22
+ den grâßten und artenreichsten tropischen Regenwald der Welt mit geschÀtzten 390 Milliarden
23
  EinzelbΓ€umen, die in 16.000 Arten unterteilt sind.
24
  - Welcher Name wird auch verwendet, um den Amazonas-Regenwald auf Englisch zu beschreiben?
resources/{simplification_interface.yml β†’ interfaces/simplification_interface.yml} RENAMED
@@ -1,7 +1,7 @@
1
  title: Text-Vereinfachung # will be used as tab title and for the link.
2
  name: huggingface/haining/scientific_abstract_simplification # path to model
3
  description: > # Adding > here allows multiline strings
4
- Bei dieser Aufgabe geht es darum, komplexe Sachverhalte einfach zu erklΓ€ren. Dieses Beispielmodell kann die
5
- Abstracts von wissenschaftlichen Publikationen so vereinfachen, dass sie auch fΓΌr Laien verstΓ€ndlich werden.
6
- Γ„hnliche Methoden kΓΆnnten verwendet werden, um beispielsweise Schweizer Rechtstexte zu vereinfachen. Dieses
7
  Modell funktioniert nur auf Englisch.
 
1
  title: Text-Vereinfachung # will be used as tab title and for the link.
2
  name: huggingface/haining/scientific_abstract_simplification # path to model
3
  description: > # Adding > here allows multiline strings
4
+ Bei dieser Aufgabe geht es darum, komplexe Sachverhalte einfach zu erklΓ€ren. Dieses Beispielmodell kann die
5
+ Abstracts von wissenschaftlichen Publikationen so vereinfachen, dass sie auch fΓΌr Laien verstΓ€ndlich werden.
6
+ Γ„hnliche Methoden kΓΆnnten verwendet werden, um beispielsweise Schweizer Rechtstexte zu vereinfachen. Dieses
7
  Modell funktioniert nur auf Englisch.
resources/{summarization_interface.yml β†’ interfaces/summarization_interface.yml} RENAMED
@@ -1,14 +1,13 @@
1
  title: Text-Zusammenfassung # will be used as tab title and for the link.
2
  name: huggingface/Einmalumdiewelt/T5-Base_GNAD # path to model
3
  description: >
4
- Hier wurde ein sogenanntes T5-Sprachmodell auf den Task der Text-Zusammenfassung
5
  spezialisiert. Das Modell versteht nur Deutsch und hat 220 Millionen Parameter.
6
  examples:
7
  # TODO: Hier ein deutsches Beispiel
8
  - >
9
- Paris is the capital and most populous city of France, with an estimated population
10
- of 2,175,601 residents as of 2018, in an area of more than 105 square kilometres
11
- (41 square miles). The City of Paris is the centre and seat of government of the region
12
- and province of Île-de-France, or Paris Region, which has an estimated population of
13
  12,174,880, or about 18 percent of the population of France as of 2017.
14
-
 
1
  title: Text-Zusammenfassung # will be used as tab title and for the link.
2
  name: huggingface/Einmalumdiewelt/T5-Base_GNAD # path to model
3
  description: >
4
+ Hier wurde ein sogenanntes T5-Sprachmodell auf den Task der Text-Zusammenfassung
5
  spezialisiert. Das Modell versteht nur Deutsch und hat 220 Millionen Parameter.
6
  examples:
7
  # TODO: Hier ein deutsches Beispiel
8
  - >
9
+ Paris is the capital and most populous city of France, with an estimated population
10
+ of 2,175,601 residents as of 2018, in an area of more than 105 square kilometres
11
+ (41 square miles). The City of Paris is the centre and seat of government of the region
12
+ and province of Île-de-France, or Paris Region, which has an estimated population of
13
  12,174,880, or about 18 percent of the population of France as of 2017.
 
resources/{zero_shot_interface.yml β†’ interfaces/zero_shot_interface.yml} RENAMED
@@ -1,44 +1,44 @@
1
  title: Zero-Shot Interface
2
  name: huggingface/Sahajtomar/German_Zeroshot
3
  description: >
4
- Bei dieser Aufgabe handelt es sich um eine Textklassifizierungsaufgabe. Das heißt, das Modell
5
- bekommt einen Textinhalt vorgelegt und muss aus einer Liste vordefinierter Labels entscheiden,
6
- welches dieser Labels den Inhalt des Textes am besten beschreibt. Der Krux bei der ganzen Sache ist,
7
- dass das Modell keine Spezialisierung fΓΌr die Labels erfahren hat und sozusagen beim ersten Mal die
8
- richtige Auswahl treffen muss; daher zero shot, denn es hat nur einen Versuch. Erreicht wird dies, in
9
- dem ein vortrainiertes Modell auf einen Datensatz fΓΌr Natural Language Inference (dt. natΓΌrlichsprachliche
10
- Inferenz oder RΓΌckschluss auf natΓΌrliche Sprache) spezialisiert wird. Bei dieser Aufgabe bekommt
11
- das Modell zwei Texte vorgelegt und muss lernen, in welchem VerhΓ€ltnis die beiden Texte zueinanderstehen.
12
- Folgende Klassen stehen dabei zur Auswahl:
13
  <ul>
14
  <li>entailment: Text A ist eine logische Schlussfolgerung von Text B</li>
15
  <li>contradiction: Text A steht im Widerspruch zu Text B</li>
16
  <li>neutral: es lassen sich keine Schlussfolgerungen dieser Art ziehen</li>
17
  </ul>
18
  </br></br>
19
- Nehmen wir als Beispiel den Ausgangstext Β«Die Kinder lΓ€cheln und winken in die KameraΒ». Nach der Spezialisierung
20
- sollte das Modell in der Lage sein zu sagen, dass die Aussage Β«Es sind Kinder anwesend.Β» eine logische
21
- Schlussfolgerung des Ausgangstextes ist, wΓ€hrend die Aussage Β«Die Kinder runzeln die Stirn.Β» im Widerspruch
22
  zum Ausgangstext steht.
23
  </br></br>
24
- Es hat sich gezeigt, dass Modelle, die auf Natural Language Inference spezialisiert wurden, auch sehr gut darin sind,
25
- Texten thematisch passende Labels zuzuordnen. Wenn wir wieder den Ausgangstext von vorhin nehmen, wΓ€re das Modell in
26
- der Lage zu sagen, dass von den mΓΆglichen Kandidatenlabels [Wirtschaft, Familie, Feier, TragΓΆdie] Familie und Feier
27
- diejenigen Labels sind, die den Inhalt des Textes am besten beschreiben.</br></br>Das hier verwendete Beispielmodell
28
  wurde auf deutschsprachige Texte trainiert.
29
  examples:
30
  -
31
  - >
32
- COVID-19 (Akronym von englisch coronavirus disease 2019, deutsch Coronavirus-Krankheit-2019), in den
33
- deutschsprachigen LΓ€ndern umgangssprachlich meist nur als β€žCoronaβ€œ oder β€žCovidβ€œ bezeichnet, ist eine
34
- meldepflichtige Infektionskrankheit mit einem breiten aber unspezifischen Symptomspektrum, die durch eine
35
- Infektion (Ansteckung) mit dem Betacoronavirus SARS-CoV-2 verursacht wird. Das Virus wurde erstmals im
36
- Dezember 2019 in Wuhan (Volksrepublik China) beschrieben. Es verbreitete sich sehr schnell weltweit und ist
37
- Ursache der COVID-19-Pandemie. Bis 18. Oktober 2022 wurden weltweit rund 622 Millionen COVID-Infizierte registriert,
38
- es wird aber in vielen LΓ€ndern eine hohe Dunkelziffer vermutet. Laut einer SchΓ€tzung der Weltgesundheitsorganisation
39
- (WHO) gab es zwischen Anfang 2020 und Ende 2021 eine weltweite, durch COVID-19 verursachte Übersterblichkeit von
40
  14,83 Millionen Toten.
41
- -
42
  - Wirtschaft
43
  - Familie
44
  - Politik
 
1
  title: Zero-Shot Interface
2
  name: huggingface/Sahajtomar/German_Zeroshot
3
  description: >
4
+ Bei dieser Aufgabe handelt es sich um eine Textklassifizierungsaufgabe. Das heißt, das Modell
5
+ bekommt einen Textinhalt vorgelegt und muss aus einer Liste vordefinierter Labels entscheiden,
6
+ welches dieser Labels den Inhalt des Textes am besten beschreibt. Der Krux bei der ganzen Sache ist,
7
+ dass das Modell keine Spezialisierung fΓΌr die Labels erfahren hat und sozusagen beim ersten Mal die
8
+ richtige Auswahl treffen muss; daher zero shot, denn es hat nur einen Versuch. Erreicht wird dies, in
9
+ dem ein vortrainiertes Modell auf einen Datensatz fΓΌr Natural Language Inference (dt. natΓΌrlichsprachliche
10
+ Inferenz oder RΓΌckschluss auf natΓΌrliche Sprache) spezialisiert wird. Bei dieser Aufgabe bekommt
11
+ das Modell zwei Texte vorgelegt und muss lernen, in welchem VerhΓ€ltnis die beiden Texte zueinanderstehen.
12
+ Folgende Klassen stehen dabei zur Auswahl:
13
  <ul>
14
  <li>entailment: Text A ist eine logische Schlussfolgerung von Text B</li>
15
  <li>contradiction: Text A steht im Widerspruch zu Text B</li>
16
  <li>neutral: es lassen sich keine Schlussfolgerungen dieser Art ziehen</li>
17
  </ul>
18
  </br></br>
19
+ Nehmen wir als Beispiel den Ausgangstext Β«Die Kinder lΓ€cheln und winken in die KameraΒ». Nach der Spezialisierung
20
+ sollte das Modell in der Lage sein zu sagen, dass die Aussage Β«Es sind Kinder anwesend.Β» eine logische
21
+ Schlussfolgerung des Ausgangstextes ist, wΓ€hrend die Aussage Β«Die Kinder runzeln die Stirn.Β» im Widerspruch
22
  zum Ausgangstext steht.
23
  </br></br>
24
+ Es hat sich gezeigt, dass Modelle, die auf Natural Language Inference spezialisiert wurden, auch sehr gut darin sind,
25
+ Texten thematisch passende Labels zuzuordnen. Wenn wir wieder den Ausgangstext von vorhin nehmen, wΓ€re das Modell in
26
+ der Lage zu sagen, dass von den mΓΆglichen Kandidatenlabels [Wirtschaft, Familie, Feier, TragΓΆdie] Familie und Feier
27
+ diejenigen Labels sind, die den Inhalt des Textes am besten beschreiben.</br></br>Das hier verwendete Beispielmodell
28
  wurde auf deutschsprachige Texte trainiert.
29
  examples:
30
  -
31
  - >
32
+ COVID-19 (Akronym von englisch coronavirus disease 2019, deutsch Coronavirus-Krankheit-2019), in den
33
+ deutschsprachigen LΓ€ndern umgangssprachlich meist nur als β€žCoronaβ€œ oder β€žCovidβ€œ bezeichnet, ist eine
34
+ meldepflichtige Infektionskrankheit mit einem breiten aber unspezifischen Symptomspektrum, die durch eine
35
+ Infektion (Ansteckung) mit dem Betacoronavirus SARS-CoV-2 verursacht wird. Das Virus wurde erstmals im
36
+ Dezember 2019 in Wuhan (Volksrepublik China) beschrieben. Es verbreitete sich sehr schnell weltweit und ist
37
+ Ursache der COVID-19-Pandemie. Bis 18. Oktober 2022 wurden weltweit rund 622 Millionen COVID-Infizierte registriert,
38
+ es wird aber in vielen LΓ€ndern eine hohe Dunkelziffer vermutet. Laut einer SchΓ€tzung der Weltgesundheitsorganisation
39
+ (WHO) gab es zwischen Anfang 2020 und Ende 2021 eine weltweite, durch COVID-19 verursachte Übersterblichkeit von
40
  14,83 Millionen Toten.
41
+ -
42
  - Wirtschaft
43
  - Familie
44
  - Politik
resources/tabs/app_tab.yml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ title: NLP Demo-Seite
2
+ dependencies:
3
+ - interfaces/gpt2_interface.yml
4
+ - tabs/legal_tab.yml
5
+ - interfaces/qa_interface.yml
6
+ - interfaces/summarization_interface.yml
7
+ - interfaces/simplification_interface.yml
8
+ - interfaces/ner_interface.yml
9
+ - interfaces/zero_shot_interface.yml
resources/tabs/legal_tab.yml ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ title: Legal # will be used as tab title
2
+ dependencies:
3
+ - interfaces/legal_german_roberta_interface.yml
4
+ - interfaces/gbert_interface.yml
resources/{template_interface.yml β†’ templates/template_interface.yml} RENAMED
@@ -3,7 +3,7 @@ name: huggingface/deepset/gelectra-large-germanquad # path to model
3
  description: > # Adding > here allows multiline strings
4
  This
5
  is
6
- a
7
  string
8
  accross
9
  multiple
@@ -14,7 +14,7 @@ examples:
14
  - Foo
15
  - Bar
16
  - # Second example
17
- - >
18
  Hello
19
  world
20
  - Hello who?
 
3
  description: > # Adding > here allows multiline strings
4
  This
5
  is
6
+ a
7
  string
8
  accross
9
  multiple
 
14
  - Foo
15
  - Bar
16
  - # Second example
17
+ - >
18
  Hello
19
  world
20
  - Hello who?
resources/templates/template_tab.yml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ title: Some Title # will be used as tab title
2
+ dependencies:
3
+ - templates/template_interface.yaml # provide all dependant interfaces as a list
src/nlp_circle_demo/__pycache__/interface.cpython-310.pyc CHANGED
Binary files a/src/nlp_circle_demo/__pycache__/interface.cpython-310.pyc and b/src/nlp_circle_demo/__pycache__/interface.cpython-310.pyc differ
 
src/nlp_circle_demo/{interface.py β†’ wrapped_gradio_objects.py} RENAMED
@@ -10,13 +10,17 @@ class WrappedGradioObject:
10
  def launch(self):
11
  return self.gradio_element.launch()
12
 
 
 
 
 
 
13
 
14
  class GradioInterfaceWrapper(WrappedGradioObject):
15
  @classmethod
16
  def from_yaml(cls, path):
17
  """Initializes Interface from YAML file."""
18
- with open(path) as f:
19
- content_dict = yaml.safe_load(f)
20
  return cls.create_interface(**content_dict)
21
 
22
  @classmethod
@@ -40,7 +44,7 @@ class GradioInterfaceWrapper(WrappedGradioObject):
40
 
41
  class GradioTabWrapper(WrappedGradioObject):
42
  @classmethod
43
- def from_interface_list(cls, title, gradio_objects):
44
  """Constructs a GradioTabWrapper from a title and a list of WrappedGradioObjects."""
45
  interface = gr.TabbedInterface(
46
  [obj.gradio_element for obj in gradio_objects],
@@ -50,4 +54,25 @@ class GradioTabWrapper(WrappedGradioObject):
50
 
51
  @classmethod
52
  def from_yaml(cls, path):
53
- pass
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  def launch(self):
11
  return self.gradio_element.launch()
12
 
13
+ @staticmethod
14
+ def read_yaml(path):
15
+ with open(path) as f:
16
+ return yaml.safe_load(f)
17
+
18
 
19
  class GradioInterfaceWrapper(WrappedGradioObject):
20
  @classmethod
21
  def from_yaml(cls, path):
22
  """Initializes Interface from YAML file."""
23
+ content_dict = cls.read_yaml(path)
 
24
  return cls.create_interface(**content_dict)
25
 
26
  @classmethod
 
44
 
45
  class GradioTabWrapper(WrappedGradioObject):
46
  @classmethod
47
+ def from_gradio_object_list(cls, title, gradio_objects):
48
  """Constructs a GradioTabWrapper from a title and a list of WrappedGradioObjects."""
49
  interface = gr.TabbedInterface(
50
  [obj.gradio_element for obj in gradio_objects],
 
54
 
55
  @classmethod
56
  def from_yaml(cls, path):
57
+ content_dict = cls.read_yaml(path)
58
+ gradio_objects = [
59
+ cls._read_dependency(dependency)
60
+ for dependency in content_dict["dependencies"]
61
+ ]
62
+ return cls.from_gradio_object_list(
63
+ content_dict["title"],
64
+ gradio_objects,
65
+ )
66
+
67
+ @staticmethod
68
+ def _read_dependency(path):
69
+ full_path = f"resources/{path}"
70
+ if path.startswith("interfaces"):
71
+ return GradioInterfaceWrapper.from_yaml(full_path)
72
+ if path.startswith("tabs"):
73
+ return GradioTabWrapper.from_yaml(full_path)
74
+ raise ValueError(
75
+ "Gradio Object Type could not be inferred from path name. Make sure "
76
+ "that all interface object yamls are in resources/interfaces, and that "
77
+ "all tab object yamls are in resources/tabs."
78
+ )