Merlintxu commited on
Commit
dbcf61e
·
1 Parent(s): 2b39abd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -26
app.py CHANGED
@@ -2,42 +2,38 @@ import gradio as gr
2
  import spacy
3
  from transformers import pipeline
4
 
5
- # Load the Spanish language model
6
  nlp = spacy.load('es_core_news_sm')
7
-
8
- # Load the text generation pipeline
9
  text_generator = pipeline('text-generation', model='gpt2')
10
 
 
 
11
  def generate_sentence():
12
- # Generate a sentence
13
- try:
14
- result = text_generator('', max_length=50)[0]
15
- sentence = result['generated_text']
16
- return sentence
17
- except Exception as e:
18
- return str(e)
19
 
20
  def analyze_sentence(sentence):
21
- # Analyze the sentence
22
  doc = nlp(sentence)
23
  tagged_words = [(token.text, token.pos_) for token in doc]
24
  return tagged_words
25
 
26
- def game_handler(action, sentence, answer):
27
- if action == 'generate':
28
- return generate_sentence(), ''
29
- elif action == 'check':
30
- tagged_words = analyze_sentence(sentence)
31
- correct_answer = [tag for word, tag in tagged_words]
32
- if answer == correct_answer:
33
- return sentence, 'Correcto!'
34
- else:
35
- return sentence, 'Incorrecto. La respuesta correcta es: ' + str(correct_answer)
36
  else:
37
- return sentence, 'Accion desconocida.'
 
 
 
 
38
 
39
- iface = gr.Interface(fn=game_handler,
40
- inputs=['dropdown', 'text', 'list'],
41
- outputs=['text', 'text'])
 
 
42
 
43
- iface.launch()
 
 
2
  import spacy
3
  from transformers import pipeline
4
 
 
5
  nlp = spacy.load('es_core_news_sm')
 
 
6
  text_generator = pipeline('text-generation', model='gpt2')
7
 
8
+ pos_tags = ['ADJ', 'ADP', 'ADV', 'AUX', 'CONJ', 'DET', 'INTJ', 'NOUN', 'NUM', 'PART', 'PRON', 'PROPN', 'PUNCT', 'SCONJ', 'SYM', 'VERB', 'X']
9
+
10
  def generate_sentence():
11
+ result = text_generator('')[0]
12
+ sentence = result['generated_text']
13
+ return sentence
 
 
 
 
14
 
15
  def analyze_sentence(sentence):
 
16
  doc = nlp(sentence)
17
  tagged_words = [(token.text, token.pos_) for token in doc]
18
  return tagged_words
19
 
20
+ def check_answer(sentence, answer):
21
+ tagged_words = analyze_sentence(sentence)
22
+ correct_answer = [tag for word, tag in tagged_words]
23
+ if answer == correct_answer:
24
+ return 'Correcto!'
 
 
 
 
 
25
  else:
26
+ return 'Incorrecto. La respuesta correcta es: ' + str(correct_answer)
27
+
28
+ def process_form(input_dict):
29
+ answer = [input_dict[word] for word in sorted(input_dict.keys())]
30
+ return check_answer(sentence, answer)
31
 
32
+ sentence = generate_sentence()
33
+ tagged_words = analyze_sentence(sentence)
34
+ inputs = {word: gr.inputs.Dropdown(choices=pos_tags) for word, tag in tagged_words}
35
+ inputs['submit'] = gr.inputs.Button(label='Submit')
36
+ outputs = gr.outputs.Textbox()
37
 
38
+ iface = gr.Interface(fn=process_form, inputs=inputs, outputs=outputs)
39
+ iface.launch()