used caching to improve speed when switching tabs
Browse files
app.py
CHANGED
|
@@ -12,24 +12,39 @@ from streamlit_tags import st_tags, st_tags_sidebar
|
|
| 12 |
|
| 13 |
st.set_page_config(page_title="Ancient Greek Word2Vec", layout="centered")
|
| 14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
# Horizontal menu
|
| 16 |
active_tab = option_menu(None, ["Nearest neighbours", "Cosine similarity", "3D graph", 'Dictionary'],
|
| 17 |
menu_icon="cast", default_index=0, orientation="horizontal")
|
| 18 |
|
| 19 |
-
# Prepare dictionary
|
| 20 |
-
lemma_dict = json.load(open('lsj_dict.json', 'r'))
|
| 21 |
|
| 22 |
# Nearest neighbours tab
|
| 23 |
if active_tab == "Nearest neighbours":
|
| 24 |
|
| 25 |
# Load the compressed word list
|
| 26 |
-
|
| 27 |
-
all_words = load_compressed_word_list(compressed_word_list_filename)
|
| 28 |
eligible_models = ["Archaic", "Classical", "Hellenistic", "Early Roman", "Late Roman"]
|
| 29 |
|
| 30 |
with st.form("nn_form"):
|
| 31 |
st.markdown("## Nearest Neighbours")
|
| 32 |
-
target_word = st.multiselect("Enter a word",
|
| 33 |
if len(target_word) > 0:
|
| 34 |
target_word = target_word[0]
|
| 35 |
|
|
@@ -113,12 +128,11 @@ elif active_tab == "3D graph":
|
|
| 113 |
col1, col2 = st.columns(2)
|
| 114 |
|
| 115 |
# Load compressed word list
|
| 116 |
-
|
| 117 |
-
all_words = load_compressed_word_list(compressed_word_list_filename)
|
| 118 |
|
| 119 |
with st.container():
|
| 120 |
with col1:
|
| 121 |
-
word = st.multiselect("Enter a word",
|
| 122 |
if len(word) > 0:
|
| 123 |
word = word[0]
|
| 124 |
|
|
|
|
| 12 |
|
| 13 |
st.set_page_config(page_title="Ancient Greek Word2Vec", layout="centered")
|
| 14 |
|
| 15 |
+
# Cache data
|
| 16 |
+
@st.cache_data
|
| 17 |
+
def load_lsj_dict():
|
| 18 |
+
return json.load(open('lsj_dict.json', 'r'))
|
| 19 |
+
|
| 20 |
+
@st.cache_data
|
| 21 |
+
def load_all_models_words():
|
| 22 |
+
return load_compressed_word_list('all_lemmas.pkl.gz')
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
# Load compressed word list
|
| 26 |
+
all_models_words = load_all_models_words()
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
# Prepare lsj dictionary
|
| 30 |
+
lemma_dict = load_lsj_dict()
|
| 31 |
+
|
| 32 |
+
|
| 33 |
# Horizontal menu
|
| 34 |
active_tab = option_menu(None, ["Nearest neighbours", "Cosine similarity", "3D graph", 'Dictionary'],
|
| 35 |
menu_icon="cast", default_index=0, orientation="horizontal")
|
| 36 |
|
|
|
|
|
|
|
| 37 |
|
| 38 |
# Nearest neighbours tab
|
| 39 |
if active_tab == "Nearest neighbours":
|
| 40 |
|
| 41 |
# Load the compressed word list
|
| 42 |
+
|
|
|
|
| 43 |
eligible_models = ["Archaic", "Classical", "Hellenistic", "Early Roman", "Late Roman"]
|
| 44 |
|
| 45 |
with st.form("nn_form"):
|
| 46 |
st.markdown("## Nearest Neighbours")
|
| 47 |
+
target_word = st.multiselect("Enter a word", all_models_words, max_selections=1)
|
| 48 |
if len(target_word) > 0:
|
| 49 |
target_word = target_word[0]
|
| 50 |
|
|
|
|
| 128 |
col1, col2 = st.columns(2)
|
| 129 |
|
| 130 |
# Load compressed word list
|
| 131 |
+
all_models_words = load_all_models_words()
|
|
|
|
| 132 |
|
| 133 |
with st.container():
|
| 134 |
with col1:
|
| 135 |
+
word = st.multiselect("Enter a word", all_models_words, max_selections=1)
|
| 136 |
if len(word) > 0:
|
| 137 |
word = word[0]
|
| 138 |
|