Spaces:
Sleeping
Sleeping
update font & example
Browse files
app.py
CHANGED
|
@@ -47,11 +47,37 @@ class NERDemo:
|
|
| 47 |
def create_demo(self) -> gr.Interface:
|
| 48 |
"""Create and configure the Gradio interface"""
|
| 49 |
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
|
| 56 |
with gr.Row():
|
| 57 |
with gr.Column(scale=3):
|
|
@@ -71,9 +97,17 @@ class NERDemo:
|
|
| 71 |
|
| 72 |
with gr.Column(scale=2):
|
| 73 |
with gr.Group():
|
| 74 |
-
gr.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
stats_output = gr.Json(label="Detected Entities")
|
| 76 |
-
time_output = gr.Markdown()
|
| 77 |
|
| 78 |
highlighted_output = gr.HighlightedText(
|
| 79 |
label="Detected Entities", show_legend=True
|
|
@@ -81,15 +115,28 @@ class NERDemo:
|
|
| 81 |
|
| 82 |
# Example inputs
|
| 83 |
examples = [
|
| 84 |
-
[
|
| 85 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
[
|
| 87 |
"Enes Fehmi Manan, İzmir'de yaşıyor ve Fibababanka'da çalışıyor.",
|
| 88 |
"Turkish",
|
| 89 |
],
|
| 90 |
-
[
|
| 91 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 92 |
]
|
|
|
|
| 93 |
gr.Examples(examples, inputs=[text_input, language])
|
| 94 |
|
| 95 |
# Event handlers
|
|
@@ -113,6 +160,7 @@ class NERDemo:
|
|
| 113 |
return demo
|
| 114 |
|
| 115 |
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
demo.
|
|
|
|
|
|
| 47 |
def create_demo(self) -> gr.Interface:
|
| 48 |
"""Create and configure the Gradio interface"""
|
| 49 |
|
| 50 |
+
theme = gr.themes.Base(
|
| 51 |
+
primary_hue="blue",
|
| 52 |
+
secondary_hue="slate",
|
| 53 |
+
font=gr.themes.GoogleFont("Source Sans Pro"),
|
| 54 |
+
neutral_hue="slate",
|
| 55 |
+
).set(
|
| 56 |
+
body_text_color="*neutral_950",
|
| 57 |
+
block_background_fill="*neutral_50",
|
| 58 |
+
block_border_width="0px",
|
| 59 |
+
button_primary_background_fill="*primary_500",
|
| 60 |
+
button_primary_background_fill_hover="*primary_600",
|
| 61 |
+
button_primary_text_color="white",
|
| 62 |
+
input_background_fill="white",
|
| 63 |
+
block_radius="lg",
|
| 64 |
+
)
|
| 65 |
+
|
| 66 |
+
with gr.Blocks(theme=theme) as demo:
|
| 67 |
+
with gr.Row():
|
| 68 |
+
gr.HTML(
|
| 69 |
+
"""
|
| 70 |
+
<div style="text-align: center; max-width: 800px; margin: 0 auto; padding: 1rem; font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Arial', sans-serif;">
|
| 71 |
+
<h1 style="color: #374151; font-size: 2.5rem; font-weight: 600; margin-bottom: 0.5rem;">
|
| 72 |
+
Multilingual Named Entity Recognition
|
| 73 |
+
</h1>
|
| 74 |
+
<p style="color: #6B7280; font-size: 1.1rem; line-height: 1.5; margin-top: 0.5rem;">
|
| 75 |
+
This demo uses XLM-RoBERTa model fine-tuned for NER tasks in multiple languages.
|
| 76 |
+
Automatically detects and highlights named entities such as persons, organizations, locations, and more.
|
| 77 |
+
</p>
|
| 78 |
+
</div>
|
| 79 |
+
"""
|
| 80 |
+
)
|
| 81 |
|
| 82 |
with gr.Row():
|
| 83 |
with gr.Column(scale=3):
|
|
|
|
| 97 |
|
| 98 |
with gr.Column(scale=2):
|
| 99 |
with gr.Group():
|
| 100 |
+
gr.HTML(
|
| 101 |
+
"""
|
| 102 |
+
<div style="margin-bottom: 1rem;">
|
| 103 |
+
<h3 style="color: #374151; font-size: 1.25rem; font-weight: 600; margin-bottom: 0.5rem;">
|
| 104 |
+
Entity Statistics
|
| 105 |
+
</h3>
|
| 106 |
+
</div>
|
| 107 |
+
"""
|
| 108 |
+
)
|
| 109 |
stats_output = gr.Json(label="Detected Entities")
|
| 110 |
+
time_output = gr.Markdown(elem_classes="text-sm text-gray-600")
|
| 111 |
|
| 112 |
highlighted_output = gr.HighlightedText(
|
| 113 |
label="Detected Entities", show_legend=True
|
|
|
|
| 115 |
|
| 116 |
# Example inputs
|
| 117 |
examples = [
|
| 118 |
+
[
|
| 119 |
+
"Emma Watson starred in Harry Potter and studied at Oxford University while working with United Nations.",
|
| 120 |
+
"English",
|
| 121 |
+
],
|
| 122 |
+
[
|
| 123 |
+
"Die Deutsche Bank hat ihren Hauptsitz in Frankfurt, während BMW in München produziert.",
|
| 124 |
+
"German",
|
| 125 |
+
],
|
| 126 |
[
|
| 127 |
"Enes Fehmi Manan, İzmir'de yaşıyor ve Fibababanka'da çalışıyor.",
|
| 128 |
"Turkish",
|
| 129 |
],
|
| 130 |
+
[
|
| 131 |
+
"Le Louvre à Paris expose la Joconde de Leonardo da Vinci depuis le XIXe siècle.",
|
| 132 |
+
"French",
|
| 133 |
+
],
|
| 134 |
+
[
|
| 135 |
+
"El Real Madrid jugará contra el Barcelona en el Santiago Bernabéu el próximo mes.",
|
| 136 |
+
"Spanish",
|
| 137 |
+
],
|
| 138 |
]
|
| 139 |
+
|
| 140 |
gr.Examples(examples, inputs=[text_input, language])
|
| 141 |
|
| 142 |
# Event handlers
|
|
|
|
| 160 |
return demo
|
| 161 |
|
| 162 |
|
| 163 |
+
if __name__ == "__main__":
|
| 164 |
+
ner_demo = NERDemo()
|
| 165 |
+
demo = ner_demo.create_demo()
|
| 166 |
+
demo.launch(share=True)
|