anonymous12321 commited on
Commit
47b1983
·
verified ·
1 Parent(s): ac87000

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -5
app.py CHANGED
@@ -1,15 +1,13 @@
1
  #!/usr/bin/env python3
2
  # -*- coding: utf-8 -*-
3
  """
4
- Gradio App - Intelligent Stacking Classifier (Dark Mode + Cards)
5
  """
6
  import gradio as gr
7
  import numpy as np
8
  import joblib
9
  import re
10
  from pathlib import Path
11
-
12
- # Sklearn
13
  from sklearn.feature_extraction.text import TfidfVectorizer
14
  from sklearn.preprocessing import MultiLabelBinarizer
15
  from scipy.sparse import hstack, csr_matrix
@@ -130,9 +128,22 @@ class PortugueseClassifier:
130
  return predicted_labels
131
 
132
 
133
- # ---------------- Gradio UI ----------------
134
  classifier = PortugueseClassifier()
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
 
137
  def classify_text(text):
138
  preds = classifier.predict(text)
@@ -158,7 +169,6 @@ def classify_text(text):
158
  """
159
  return cards
160
 
161
-
162
  # Dark theme CSS
163
  css = """
164
  body { background-color: #121212; color: #f5f5f5; font-family: 'Segoe UI', sans-serif; }
@@ -167,6 +177,8 @@ input, textarea { background-color: #1E1E1E; color: #f5f5f5; border: 1px solid #
167
  button { background-color: #1E90FF; color: white; border-radius: 6px; border: none; }
168
  .gradio-container { background-color: #121212; }
169
  .output_html { background-color: #121212; color: #f5f5f5; }
 
 
170
  """
171
 
172
  with gr.Blocks(css=css, theme=None) as demo:
@@ -176,6 +188,13 @@ with gr.Blocks(css=css, theme=None) as demo:
176
  with gr.Column():
177
  text_input = gr.Textbox(label="Enter Portuguese administrative text", lines=10,
178
  placeholder="Cole aqui o texto do documento...")
 
 
 
 
 
 
 
179
  classify_btn = gr.Button("🔍 Classify")
180
  with gr.Column():
181
  output = gr.HTML(label="Predicted Categories")
 
1
  #!/usr/bin/env python3
2
  # -*- coding: utf-8 -*-
3
  """
4
+ Gradio App - Intelligent Stacking Classifier
5
  """
6
  import gradio as gr
7
  import numpy as np
8
  import joblib
9
  import re
10
  from pathlib import Path
 
 
11
  from sklearn.feature_extraction.text import TfidfVectorizer
12
  from sklearn.preprocessing import MultiLabelBinarizer
13
  from scipy.sparse import hstack, csr_matrix
 
128
  return predicted_labels
129
 
130
 
131
+ # ---------------- Gradio ----------------
132
  classifier = PortugueseClassifier()
133
 
134
+ # 10 exemplos clicáveis
135
+ exemplos = [
136
+ "O Sr. Presidente deu conhecimento do relatório da ROC em relação à Prestação de contas de 2023.",
137
+ "Continuou por informar que no dia 19 o executivo participou na apresentação do Festival Soil to Soul, em Lisboa, que é já a segunda edição e que terá lugar nos dias 25 e 26 de maio, no Castelo do Alandroal.",
138
+ "Pelo Sr. Presidente foram presentes a reunião as informações da contabilidade que se anexam à presente ata. Ponderado e analisado o assunto o Executivo Municipal deliberou por maioria, com os votos a favor dos eleitos pelo PS e a abstenção da eleita pelo Nós, Cidadãos, ratificar as alterações orçamentais permutativas.",
139
+ "Não houve alteração orçamental permutativa para apresentar.",
140
+ "Pelo Senhor Presidente foi presentes a reunião a ata n.º 9, de 10.04.2024. Ponderado e analisado o assunto o Executivo Municipal deliberou por unanimidade aprovar a ata n.º 9, de 10.04.2024.",
141
+ "Pelo Sr. Presidente foi presente a reunião o pedido de apoio para obras do Centro Social e Paroquial de Alandroal que se anexa à presente ata. Ponderado e analisado o assunto o Executivo Municipal deliberou por unanimidade aprovar o pedido de apoio financeiro.",
142
+ "Pelo Senhor Presidente foi presente a reunião a proposta n.º 7 do Presidente que se anexa à presente ata. Ponderado e analisado o assunto o Executivo Municipal deliberou por unanimidade aprovar a proposta.",
143
+ "Pelo Senhor Presidente foram presentes a reunião as informações n.º 2/2024 de 12 de abril do serviço de Património. Referiu o Sr. Presidente tratar-se de equipamento informático obsoleto. Ponderado e analisado o assunto o Executivo Municipal deliberou por unanimidade aprovar o abate de equipamento.",
144
+ "Pelo Senhor Presidente foram presentes a reunião as informações n.º **** e **** da Secção de Serviço Social. Ponderado e analisado o assunto o Executivo Municipal deliberou por unanimidade aprovar a atribuição de dois subsídios de nascimento.",
145
+ "Pelo Senhor Presidente foi presente a esta reunião a informação n.º **** da Secção de Serviço Social. Ponderado e analisado o assunto o Executivo Municipal deliberou por unanimidade aprovar a atribuição de um apoio à fixação de residência em habitação própria."
146
+ ]
147
 
148
  def classify_text(text):
149
  preds = classifier.predict(text)
 
169
  """
170
  return cards
171
 
 
172
  # Dark theme CSS
173
  css = """
174
  body { background-color: #121212; color: #f5f5f5; font-family: 'Segoe UI', sans-serif; }
 
177
  button { background-color: #1E90FF; color: white; border-radius: 6px; border: none; }
178
  .gradio-container { background-color: #121212; }
179
  .output_html { background-color: #121212; color: #f5f5f5; }
180
+ .card-btn { width: 100%; margin-bottom:5px; background-color:#2C2C2C; color:white; border-radius:6px; }
181
+ .card-btn:hover { background-color:#3A3A3A; }
182
  """
183
 
184
  with gr.Blocks(css=css, theme=None) as demo:
 
188
  with gr.Column():
189
  text_input = gr.Textbox(label="Enter Portuguese administrative text", lines=10,
190
  placeholder="Cole aqui o texto do documento...")
191
+
192
+ # Exemplos clicáveis
193
+ gr.HTML("<h3 style='color:white;'>Exemplos de textos (clica para usar):</h3>")
194
+ for ex in exemplos:
195
+ btn = gr.Button(ex[:60]+"..." if len(ex)>60 else ex, elem_classes=["card-btn"])
196
+ btn.click(lambda x=ex: x, None, text_input)
197
+
198
  classify_btn = gr.Button("🔍 Classify")
199
  with gr.Column():
200
  output = gr.HTML(label="Predicted Categories")