Spaces:
Runtime error
Runtime error
File size: 2,759 Bytes
514343b 4fd42f1 514343b 59e519b 9983408 843aeb0 44264ed 88993fe 9983408 418bd7c 88993fe 44264ed e838b9b b3c3404 1716434 b3c3404 418bd7c b3c3404 20efea7 b3c3404 20efea7 b3c3404 56c44d6 15e7e9a ea052a5 15e7e9a b1d589a 15e7e9a 56c44d6 08a6457 534b3f6 08a6457 bc90e89 08a6457 fd7311e 08a6457 fd7311e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
''' To-do
Create a side bar to compare two or upload CSV
In the second tab, allow them to compare all CSV files
'''
import streamlit as st
import pandas as pd
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity
model = SentenceTransformer('paraphrase-xlm-r-multilingual-v1')
sentences = []
# Streamlit interface
st.title("Sentence Similarity")
sidebar_selectbox = st.sidebar.selectbox(
"What would you like to work with?",
("Compare two sentences", "Bulk upload and mark")
)
# Streamlit form elements (default to "Compare two sentences")
if sidebar_selectbox == "Compare two sentences":
st.subheader("Compare the similarity between two sentences")
with st.form("submission_form", clear_on_submit=False):
sentence_1 = st.text_input("Sentence 1 input")
sentence_2 = st.text_input("Sentence 2 input")
submit_button_compare = st.form_submit_button("Compare Sentences")
# If submit_button_compare clicked
if submit_button_compare:
# Perform calculations
# Append input sentences to 'sentences' list
sentences.append(sentence_1)
sentences.append(sentence_2)
# Create embeddings for both sentences
sentence_embeddings = model.encode(sentences)
cos_sim = cosine_similarity(sentence_embeddings[0].reshape(1, -1), sentence_embeddings[1].reshape(1, -1))[0][0]
cos_sim = round(cos_sim * 100) # Convert to percentage and round-off
st.write('Similarity between {} and {} is {}%'.format(sentence_1,
sentence_2, cos_sim))
if sidebar_selectbox == "Bulk upload and mark":
st.subheader("Bulk compare similarity of sentences")
sentence_reference = st.text_input("Reference sentence input")
# Only allow user to upload CSV files
data_file = st.file_uploader("Upload CSV",type=["csv"])
if data_file is not None:
file_details = {"filename":data_file.name, "filetype":data_file.type, "filesize":data_file.size}
st.write(file_details)
df = pd.read_csv(data_file)
# Append new column to dataframe
total_rows = df.shape[0]
similarity_scores = []
# similarity_scores.append()
# df['Similarity'] = similarity_scores
st.dataframe(df)
st.write(total_rows) |