Spaces:
Sleeping
Sleeping
Initial version
Browse files- app.py +58 -0
- requirements.txt +2 -0
app.py
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from transformers import pipeline
|
3 |
+
|
4 |
+
# token_classifier = pipeline(
|
5 |
+
# model="ZurichNLP/swissbert-ner",
|
6 |
+
# aggregation_strategy="simple",
|
7 |
+
# )
|
8 |
+
|
9 |
+
def run_ner_placeholder(text: str, language: str):
|
10 |
+
assert language in {"de_CH", "fr_CH", "it_CH", "rm_CH"}, f"Language {language} not supported"
|
11 |
+
# Placeholder
|
12 |
+
assert text == "Mein Name sei Gantenbein."
|
13 |
+
return [{'entity_group': 'PER',
|
14 |
+
'score': 0.50026333,
|
15 |
+
'word': 'Gantenbein',
|
16 |
+
'start': 13,
|
17 |
+
'end': 24}
|
18 |
+
]
|
19 |
+
|
20 |
+
def run_ner(text: str, language: str):
|
21 |
+
token_classifier.model.set_default_language(language)
|
22 |
+
output = token_classifier(text)
|
23 |
+
return output
|
24 |
+
|
25 |
+
def visualize_ner(text: str, language: str):
|
26 |
+
labels = run_ner_placeholder(text, language)
|
27 |
+
return {
|
28 |
+
"entities": labels,
|
29 |
+
"text": text,
|
30 |
+
}
|
31 |
+
|
32 |
+
demo = gr.Interface(
|
33 |
+
fn=visualize_ner,
|
34 |
+
inputs=[
|
35 |
+
gr.Textbox(lines=5, placeholder="Enter your text here...", label="Text"),
|
36 |
+
gr.Dropdown(choices=[
|
37 |
+
("German", "de_CH"),
|
38 |
+
("French", "fr_CH"),
|
39 |
+
("Italian", "it_CH"),
|
40 |
+
("Romansh", "rm_CH")
|
41 |
+
], value="de_CH", label="Language")
|
42 |
+
],
|
43 |
+
outputs=gr.HighlightedText(
|
44 |
+
label="Named Entities",
|
45 |
+
combine_adjacent=True,
|
46 |
+
),
|
47 |
+
title="SwissBERT NER",
|
48 |
+
description="Analyze text with SwissBERT for named entity recognition.",
|
49 |
+
allow_flagging=False,
|
50 |
+
examples=[
|
51 |
+
["Es war die grosse Überraschung im Baselbiet bei den gestrigen Wahlen: Thomi Jourdan von der Kleinstpartei EVP hat den Sprung in die Regierung geschafft und sich gegen SVP-Nationalrätin Sandra Sollberger durchgesetzt.", "de_CH"],
|
52 |
+
["La cheffe de la Direction suisse du développement et de la coopération (DDC), Patricia Danzi, a tenu à accueillir elle-même les 87 spécialistes à l'aéroport, a indiqué le Département fédéral des affaires étrangères (DFAE). Elle était notamment accompagnée de Silvio Flückiger, chef suppléant de l'Aide humanitaire de la Suisse, ainsi que du chef de l'armée Thomas Süssli.", "fr_CH"],
|
53 |
+
["I Grigioni, al contrario di quanto fatto dal Ticino, non intendono adottare una legislazione particolare per fronteggiare la diffusione delle sigarette elettroniche tra i ragazzi. Lo ha ribadito martedì il Consiglio di Stato rispondendo alle preoccupazioni espresse dall'ex direttrice scolastica e deputata del Centro di Mesocco Piera Furger. Di fronte al Gran Consiglio, il Governo ha spiegato di privilegiare una soluzione a livello nazionale e un approccio all'insegna della prevenzione e non della repressione.", "it_CH"],
|
54 |
+
["Tar l’Ospital chantunal dal Grischun datti in augment d’accidents da skiunzas e snowboardists sin pista da 20%. Quai dal prim da schaner fin ils 6 da favrer, cumpareglià cun la media dals tschintg onns passads. Quai rapporta il «Tagesanzeiger» Tenor il pledader da medias, Dajan Roman, haja era dà dapli blessuras grevas. Ils ultims onns era la media tar 3%, dapi l’entschatta da l’onn èn quai gia 4,2%.", "rm_CH"],
|
55 |
+
],
|
56 |
+
)
|
57 |
+
|
58 |
+
demo.launch(debug=True)
|
requirements.txt
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
gradio
|
2 |
+
transformers
|