in utils/gradio_utils.py [0:0]
def npmi_widget(dstats, column_id=""):
"""
Part of the UI, but providing for interaction.
:param column_id:
:param dstats:
:return:
"""
min_vocab = dstats.min_vocab_count
npmi_stats = dstats.npmi_obj
available_terms = npmi_stats.avail_identity_terms
with st.expander(f"Word Association{column_id}: nPMI", expanded=False):
if npmi_stats and len(available_terms) > 0:
expander_npmi_description(min_vocab)
st.markdown("-----")
term1 = st.selectbox(
f"What is the first term you want to select?{column_id}",
available_terms,
)
term2 = st.selectbox(
f"What is the second term you want to select?{column_id}",
reversed(available_terms),
)
try:
joint_npmi_df = npmi_stats.get_display(term1, term2)
npmi_show(joint_npmi_df)
except Exception as e:
logs.exception(e)
st.markdown(
"**WARNING!** The nPMI for these terms has not been"
" pre-computed, please re-run caching."
)
else:
st.markdown("No words found co-occurring with both of the selected identity"
" terms.")