|
import streamlit as st |
|
from streamlit_option_menu import option_menu |
|
from word2vec import * |
|
import pandas as pd |
|
|
|
st.set_page_config(page_title="Ancient Greek Word2Vec", layout="centered") |
|
|
|
|
|
active_tab = option_menu(None, ["Nearest neighbours", "Cosine similarity", "3D graph", 'Dictionary'], |
|
menu_icon="cast", default_index=0, orientation="horizontal") |
|
|
|
|
|
if active_tab == "Nearest neighbours": |
|
st.write("### TO DO: add description of function") |
|
col1, col2 = st.columns(2) |
|
with st.container(): |
|
with col1: |
|
word = st.text_input("Enter a word", placeholder="ἀνήρ") |
|
|
|
with col2: |
|
time_slice = st.selectbox("Time slice", ["Archaic", "Classical", "Hellenistic", "Early Roman", "Late Roman"]) |
|
|
|
n = st.slider("Number of neighbours", 1, 50, 15) |
|
|
|
nearest_neighbours_button = st.button("Find nearest neighbours") |
|
|
|
|
|
if nearest_neighbours_button: |
|
|
|
|
|
time_slice = time_slice.lower() + "_cbow" |
|
st.write(time_slice) |
|
|
|
|
|
if validate_nearest_neighbours(word, time_slice, n) == False: |
|
st.error('Please fill in all fields') |
|
else: |
|
nearest_neighbours = get_nearest_neighbours(word, time_slice, n) |
|
df = pd.DataFrame(nearest_neighbours, columns=["Word", "Time slice", "Similarity"]) |
|
st.table(df) |
|
|
|
|
|
|
|
|
|
|
|
|
|
elif active_tab == "Cosine similarity": |
|
with st.container(): |
|
st.write("Cosine similarity tab") |
|
|
|
|
|
elif active_tab == "3D graph": |
|
with st.container(): |
|
st.write("3D graph tab") |
|
|
|
|
|
elif active_tab == "Dictionary": |
|
with st.container(): |
|
st.write("Dictionary tab") |
|
|
|
|