Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -1,25 +1,23 @@
|
|
1 |
-
import gradio as gr
|
2 |
from transformers import pipeline, AutoModelForSequenceClassification, AutoTokenizer
|
3 |
from sklearn.metrics.pairwise import cosine_similarity
|
4 |
from sklearn.feature_extraction.text import TfidfVectorizer
|
5 |
import numpy as np
|
|
|
6 |
|
7 |
# Modelos para an谩lisis de texto y similitud
|
8 |
sentiment_analysis = pipeline("sentiment-analysis", model="distilbert-base-uncased-finetuned-sst-2-english")
|
9 |
similarity_model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
|
10 |
similarity_tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
|
11 |
|
12 |
-
# Respuestas esperadas
|
13 |
expected_responses = {
|
14 |
'question1': ['respuesta1a', 'respuesta1b', 'respuesta1c'],
|
15 |
'question2': ['respuesta2a', 'respuesta2b', 'respuesta2c'],
|
16 |
'question3': ['respuesta3a', 'respuesta3b', 'respuesta3c'],
|
17 |
'question4': ['respuesta4a', 'respuesta4b', 'respuesta4c'],
|
18 |
-
'question5': 'an谩lisis de texto para la pregunta 5',
|
19 |
-
'question6': 'an谩lisis de texto para la pregunta 6'
|
20 |
}
|
21 |
|
22 |
-
# Funci贸n para calcular la similitud de respuestas
|
23 |
def calculate_similarity(response, expected_responses):
|
24 |
vectorizer = TfidfVectorizer().fit_transform([response] + expected_responses)
|
25 |
vectors = vectorizer.toarray()
|
@@ -49,22 +47,27 @@ def evaluate_all_responses(responses):
|
|
49 |
return results
|
50 |
|
51 |
# Interfaz Gradio
|
52 |
-
def evaluate(responses):
|
53 |
if len(responses) != 6:
|
54 |
return {'error': 'Se esperan 6 respuestas'}
|
55 |
results = evaluate_all_responses(responses)
|
56 |
return results
|
57 |
|
|
|
58 |
input_texts = [gr.Textbox(label=f"Pregunta {i+1}") for i in range(6)]
|
|
|
|
|
59 |
output_text = gr.JSON(label="Resultados")
|
60 |
|
|
|
61 |
demo = gr.Interface(
|
62 |
fn=evaluate,
|
63 |
inputs=input_texts,
|
64 |
outputs=output_text,
|
65 |
-
title="Evaluaci贸n de Respuestas",
|
66 |
-
description="Ingrese las respuestas para las 6 preguntas."
|
67 |
)
|
68 |
|
|
|
69 |
if __name__ == "__main__":
|
70 |
demo.launch()
|
|
|
|
|
1 |
from transformers import pipeline, AutoModelForSequenceClassification, AutoTokenizer
|
2 |
from sklearn.metrics.pairwise import cosine_similarity
|
3 |
from sklearn.feature_extraction.text import TfidfVectorizer
|
4 |
import numpy as np
|
5 |
+
import gradio as gr
|
6 |
|
7 |
# Modelos para an谩lisis de texto y similitud
|
8 |
sentiment_analysis = pipeline("sentiment-analysis", model="distilbert-base-uncased-finetuned-sst-2-english")
|
9 |
similarity_model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
|
10 |
similarity_tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
|
11 |
|
12 |
+
# Respuestas esperadas para las preguntas
|
13 |
expected_responses = {
|
14 |
'question1': ['respuesta1a', 'respuesta1b', 'respuesta1c'],
|
15 |
'question2': ['respuesta2a', 'respuesta2b', 'respuesta2c'],
|
16 |
'question3': ['respuesta3a', 'respuesta3b', 'respuesta3c'],
|
17 |
'question4': ['respuesta4a', 'respuesta4b', 'respuesta4c'],
|
|
|
|
|
18 |
}
|
19 |
|
20 |
+
# Funci贸n para calcular la similitud de respuestas usando TF-IDF y cosine similarity
|
21 |
def calculate_similarity(response, expected_responses):
|
22 |
vectorizer = TfidfVectorizer().fit_transform([response] + expected_responses)
|
23 |
vectors = vectorizer.toarray()
|
|
|
47 |
return results
|
48 |
|
49 |
# Interfaz Gradio
|
50 |
+
def evaluate(*responses):
|
51 |
if len(responses) != 6:
|
52 |
return {'error': 'Se esperan 6 respuestas'}
|
53 |
results = evaluate_all_responses(responses)
|
54 |
return results
|
55 |
|
56 |
+
# Definir los cuadros de texto para las respuestas de las preguntas
|
57 |
input_texts = [gr.Textbox(label=f"Pregunta {i+1}") for i in range(6)]
|
58 |
+
|
59 |
+
# Definir la salida como un JSON para mostrar los resultados
|
60 |
output_text = gr.JSON(label="Resultados")
|
61 |
|
62 |
+
# Crear la interfaz Gradio
|
63 |
demo = gr.Interface(
|
64 |
fn=evaluate,
|
65 |
inputs=input_texts,
|
66 |
outputs=output_text,
|
67 |
+
title="Evaluaci贸n de Respuestas y An谩lisis de Texto",
|
68 |
+
description="Ingrese las respuestas para las 6 preguntas y obtenga evaluaciones de similitud y an谩lisis de sentimientos.",
|
69 |
)
|
70 |
|
71 |
+
# Lanzar la aplicaci贸n
|
72 |
if __name__ == "__main__":
|
73 |
demo.launch()
|