cecilemacaire commited on
Commit
6371e90
·
verified ·
1 Parent(s): 8fd9bf8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -15
app.py CHANGED
@@ -1,7 +1,8 @@
1
  import gradio as gr
2
  import pandas as pd
3
 
4
- # Lecture du lexique
 
5
  def read_lexicon(lexicon_file):
6
  df = pd.read_csv(lexicon_file, sep='\t')
7
  df['keyword_no_cat'] = df['lemma'].str.split(' #').str[0].str.strip().str.replace(' ', '_')
@@ -9,7 +10,8 @@ def read_lexicon(lexicon_file):
9
 
10
  lexicon = read_lexicon("lexicon.csv")
11
 
12
- # Récupération de l'ID du pictogramme depuis le lexique
 
13
  def get_id_picto_from_predicted_lemma(df_lexicon, lemma):
14
  lemma = lemma.strip().lower()
15
  if lemma.endswith("!"):
@@ -17,7 +19,8 @@ def get_id_picto_from_predicted_lemma(df_lexicon, lemma):
17
  id_picto = df_lexicon.loc[df_lexicon['keyword_no_cat'] == lemma, 'id_picto'].tolist()
18
  return (id_picto[0], lemma) if id_picto else (0, lemma)
19
 
20
- # Génération de contenu HTML pour afficher les pictogrammes
 
21
  def generate_html(ids):
22
  html_content = '''
23
  <style>
@@ -44,40 +47,40 @@ def generate_html(ids):
44
  </style>
45
  '''
46
  for picto_id, lemma in ids:
47
- if picto_id != 0: # pictogramme trouvé
48
  img_url = f"https://static.arasaac.org/pictograms/{picto_id}/{picto_id}_500.png"
49
  html_content += f'''
50
  <figure>
51
- <img src="{img_url}" alt="{lemma}" width="100" height="100"/>
52
  <figcaption>{lemma}</figcaption>
53
  </figure>
54
  '''
55
- else: # pictogramme non trouvé
56
  html_content += f'''
57
  <figure>
58
- <figcaption>Token "{lemma}" non trouvé dans le lexique</figcaption>
59
  </figure>
60
  '''
61
  return html_content
62
 
63
- # Fonction principale de traitement
 
64
  def process_text(input_text):
65
- tokens = input_text.strip().split() # Découper l'entrée utilisateur en tokens
66
  pictogram_ids = [get_id_picto_from_predicted_lemma(lexicon, token) for token in tokens]
67
  return generate_html(pictogram_ids)
68
 
 
69
  # Configuration de l'interface Gradio
70
  with gr.Blocks() as demo:
71
  gr.Markdown("## Visualize Pictograms Application")
72
- gr.Markdown("Saisissez une phrase pour voir les pictogrammes correspondants.")
73
 
74
- # Zone de texte et résultats dans une colonne
75
  with gr.Column():
76
- input_text = gr.Textbox(label="Entrez votre texte", placeholder="Exemple : bonjour comment ça va")
77
- output_html = gr.HTML(label="Résultats")
78
 
79
- # Bouton pour afficher les résultats
80
- submit_btn = gr.Button("Afficher les pictogrammes")
81
  submit_btn.click(process_text, inputs=input_text, outputs=output_html)
82
 
83
  # Lancer l'application
 
1
  import gradio as gr
2
  import pandas as pd
3
 
4
+
5
+ # Read the lexicon
6
  def read_lexicon(lexicon_file):
7
  df = pd.read_csv(lexicon_file, sep='\t')
8
  df['keyword_no_cat'] = df['lemma'].str.split(' #').str[0].str.strip().str.replace(' ', '_')
 
10
 
11
  lexicon = read_lexicon("lexicon.csv")
12
 
13
+
14
+ # Get the ARASAAC pictogram ID from the lexicon
15
  def get_id_picto_from_predicted_lemma(df_lexicon, lemma):
16
  lemma = lemma.strip().lower()
17
  if lemma.endswith("!"):
 
19
  id_picto = df_lexicon.loc[df_lexicon['keyword_no_cat'] == lemma, 'id_picto'].tolist()
20
  return (id_picto[0], lemma) if id_picto else (0, lemma)
21
 
22
+
23
+ # HTML content to show the pictogram images
24
  def generate_html(ids):
25
  html_content = '''
26
  <style>
 
47
  </style>
48
  '''
49
  for picto_id, lemma in ids:
50
+ if picto_id != 0: # pictogram id exists
51
  img_url = f"https://static.arasaac.org/pictograms/{picto_id}/{picto_id}_500.png"
52
  html_content += f'''
53
  <figure>
54
+ <img src="{img_url}" alt="{lemma}" width="150" height="150"/>
55
  <figcaption>{lemma}</figcaption>
56
  </figure>
57
  '''
58
+ else: # not found pictogram
59
  html_content += f'''
60
  <figure>
61
+ <figcaption>Token "{lemma}" not in the lexicon</figcaption>
62
  </figure>
63
  '''
64
  return html_content
65
 
66
+
67
+ # Process the input of the user
68
  def process_text(input_text):
69
+ tokens = input_text.strip().split() # cut the sequence into tokens
70
  pictogram_ids = [get_id_picto_from_predicted_lemma(lexicon, token) for token in tokens]
71
  return generate_html(pictogram_ids)
72
 
73
+
74
  # Configuration de l'interface Gradio
75
  with gr.Blocks() as demo:
76
  gr.Markdown("## Visualize Pictograms Application")
77
+ gr.Markdown("Enter a sequence of pictogram tokens")
78
 
 
79
  with gr.Column():
80
+ input_text = gr.Textbox(label="", placeholder="Example : bonjour je appeler plan_taille")
81
+ output_html = gr.HTML(label="ARASAAC Pictograms")
82
 
83
+ submit_btn = gr.Button("Generate")
 
84
  submit_btn.click(process_text, inputs=input_text, outputs=output_html)
85
 
86
  # Lancer l'application