|
import gradio as gr |
|
import spacy |
|
from transformers import pipeline |
|
|
|
|
|
nlp = spacy.load('es_core_news_sm') |
|
|
|
|
|
text_generator = pipeline('text-generation', model='gpt2') |
|
|
|
def generate_sentence(): |
|
|
|
try: |
|
result = text_generator('', max_length=50)[0] |
|
sentence = result['generated_text'] |
|
return sentence |
|
except Exception as e: |
|
return str(e) |
|
|
|
def analyze_sentence(sentence): |
|
|
|
doc = nlp(sentence) |
|
tagged_words = [(token.text, token.pos_) for token in doc] |
|
return tagged_words |
|
|
|
def game_handler(action, sentence, answer): |
|
if action == 'generate': |
|
return generate_sentence(), '' |
|
elif action == 'check': |
|
tagged_words = analyze_sentence(sentence) |
|
correct_answer = [tag for word, tag in tagged_words] |
|
if answer == correct_answer: |
|
return sentence, 'Correcto!' |
|
else: |
|
return sentence, 'Incorrecto. La respuesta correcta es: ' + str(correct_answer) |
|
else: |
|
return sentence, 'Accion desconocida.' |
|
|
|
iface = gr.Interface(fn=game_handler, |
|
inputs=['dropdown', 'text', 'list'], |
|
outputs=['text', 'text']) |
|
|
|
iface.launch() |