Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from pandas import DataFrame | |
| import seaborn as sns | |
| from model import ArxivClassifierModelsPipeline | |
| st.markdown("# Hello, friend!") | |
| st.markdown(" This magic application going to help you with understanding of science paper topic! Cool? Yeah! ") | |
| model = ArxivClassifierModelsPipeline() | |
| with st.form(key="my_form"): | |
| st.markdown("### π Do you want a little magic? ") | |
| st.markdown(" Write your article title and abstract to textboxes bellow and I'll gues topic of your paper! ") | |
| ce, c2, c3 = st.columns([0.07, 5, 0.07]) | |
| with c2: | |
| doc_title = st.text_area( | |
| "Paste your paper's title below (max 100 words)", | |
| height=210, | |
| ) | |
| doc_abstract = st.text_area( | |
| "Paste your paper's abstract text below (max 100500 words)", | |
| height=410, | |
| ) | |
| MAX_WORDS_TITLE, MAX_WORDS_ABSTRACT = 50, 500 | |
| import re | |
| len_title = len(re.findall(r"\w+", doc_title)) | |
| len_abstract = len(re.findall(r"\w+", doc_abstract)) | |
| if len_title > MAX_WORDS_TITLE: | |
| st.warning( | |
| "β οΈ Your title contains " | |
| + str(len_title) | |
| + " words." | |
| + " Only the first 50 words will be reviewed. Stay tuned as increased allowance is coming! π" | |
| ) | |
| doc_title = doc_title[:MAX_WORDS_TITLE] | |
| if len_abstract > MAX_WORDS_ABSTRACT: | |
| st.warning( | |
| "β οΈ Your abstract contains " | |
| + str(len_abstract) | |
| + " words." | |
| + " Only the first 500 words will be reviewed. Stay tuned as increased allowance is coming! π" | |
| ) | |
| doc_abstract = doc_abstract[:MAX_WORDS_ABSTRACT] | |
| submit_button = st.form_submit_button(label="β¨ Let's play, try it!") | |
| if not submit_button: | |
| st.stop() | |
| title = doc_title | |
| abstract = doc_abstract | |
| # try: | |
| # tokens = tokenizer_(title + abstract, return_tensors="pt") | |
| # except ValueError: | |
| # st.error("Word parsing into tokens went wrong! Is input valid? If yes, pls contact author [email protected]") | |
| preds_topic, preds_maintopic = model.make_predict(title + abstract) | |
| st.markdown("## π Yor article probably about: ") | |
| st.header("") | |
| df = ( | |
| DataFrame(preds_topic.items(), columns=["Topic", "Probability"]) | |
| .sort_values(by="Probability", ascending=False) | |
| .reset_index(drop=True) | |
| ) | |
| df.index += 1 | |
| # Add styling | |
| cmGreen = sns.light_palette("green", as_cmap=True) | |
| cmRed = sns.light_palette("red", as_cmap=True) | |
| df = df.style.background_gradient( | |
| cmap=cmGreen, | |
| subset=[ | |
| "Probability", | |
| ], | |
| ) | |
| c1, c2, c3 = st.columns([1, 3, 1]) | |
| format_dictionary = { | |
| "Probability": "{:.1%}", | |
| } | |
| df = df.format(format_dictionary) | |
| with c2: | |
| st.markdown("#### We suppose your research about: ") | |
| st.markdown(f"### {preds_maintopic}! ") | |
| st.markdown(f"Wow, we're impressed, are you addicted to {preds_maintopic.lower()}?! Coool! ") | |
| st.markdown("##### More detailed, it's about topic: ") | |
| st.table(df) | |