LordCoffee commited on
Commit
c4d8ca4
verified
1 Parent(s): 57f9a5f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -8
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()