Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import pandas as pd | |
| from nltk.tokenize import sent_tokenize | |
| from sentence_transformers import SentenceTransformer | |
| from sklearn.metrics.pairwise import cosine_similarity | |
| import nltk | |
| nltk.download('punkt') | |
| def generate_summary(teacher_feedback): | |
| # Tokenize the feedback into sentences | |
| sentences = sent_tokenize(teacher_feedback) | |
| if len(sentences) == 0: | |
| st.text("No feedback available.") | |
| # Encode sentences into BERT embeddings | |
| sentence_embeddings = model.encode(sentences) | |
| # Calculate the mean embedding of all sentences | |
| mean_embedding = sentence_embeddings.mean(axis=0, keepdims=True) | |
| # Calculate cosine similarity between each sentence embedding and the mean embedding | |
| cos_similarities = cosine_similarity(sentence_embeddings, mean_embedding) | |
| # Sort sentences by cosine similarity in descending order | |
| sorted_indices = cos_similarities.flatten().argsort()[::-1] | |
| # Select the top two sentences as representative | |
| num_sentences = min(1,2) # Adjust the number of sentences as needed | |
| representative_sentences = [sentences[idx] for idx in sorted_indices[:num_sentences]] | |
| # Generate summary | |
| summary = ' '.join(representative_sentences) | |
| return summary | |
| st.header('RAMACHANDRA COLLEGE OF ENGINEERING') | |
| st.title('STUDENT FEEDBACK ANALYZER') | |
| model = SentenceTransformer('paraphrase-MiniLM-L6-v2') | |
| csv=st.file_uploader('Enter CSV') | |
| if csv: | |
| df = pd.read_csv(csv) | |
| # Load the dataset | |
| # Specify the range of teachers to consider | |
| start_teacher = 1 | |
| end_teacher = 5 # Adjust as needed | |
| # Generate summary for each teacher in the specified range | |
| for i in range(start_teacher, end_teacher + 1): | |
| if 'Teacher '+str(i) in df.columns and not df['Teacher '+str(i)].isnull().all(): | |
| teacher_feedback = df['Teacher '+str(i)].dropna().str.cat(sep=' ') | |
| st.text("Summary of feedback for :"+'Teacher '+str(i)) | |
| st.text(generate_summary(teacher_feedback)) | |
| else: | |
| st.text("No feedback available for Teacher"+str(i)) | |