Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from datetime import datetime | |
| from ercbcm import predict | |
| STATUS_STOPPED = 120001 | |
| STATUS_SUBMIT = 120002 | |
| STATUS_ERROR = 120003 | |
| st.session_state['running_status'] = STATUS_STOPPED | |
| st.markdown(""" | |
| <center><h2 style="padding-top: 0px; padding-bottom: 8px;">Entity Referring Classifier</h2></center> | |
| <center><h6 style="color: #bfbfbf"><b>It knows exactly when you are calling it.</b></h6></center> | |
| <br/> | |
| """, unsafe_allow_html=True) | |
| livedemo_col1, livedemo_col2, livedemo_col3 = st.columns([12,1,6]) | |
| with livedemo_col1: | |
| # Version. | |
| st.markdown(""" | |
| <h3>Live Demo <small style="font-size:12px; color: #cfcfcf">version 2.1.0.1216</small></h3> | |
| """, unsafe_allow_html=True) | |
| # Live Demo form. | |
| with st.form("live_demo_form"): | |
| entity = st.text_input('Entity Name:', 'Jimmy') | |
| sentence = st.text_input('Sentence Input:', 'Are you feeling good, Jimmy?', | |
| help='The classifier is going to analyze this sentence.') | |
| if st.form_submit_button('🚀 Submit'): | |
| if entity.lower() not in sentence.lower(): | |
| st.session_state['running_status'] = STATUS_ERROR | |
| else: | |
| st.session_state['running_status'] = STATUS_SUBMIT | |
| if st.session_state['running_status'] == STATUS_STOPPED: | |
| st.info('Type something and submit to start!') | |
| elif st.session_state['running_status'] == STATUS_SUBMIT: | |
| if predict(sentence, entity) == 'CALLING': | |
| st.success('It is a **calling**!') | |
| else: | |
| st.success('It is a **mentioning**!') | |
| st.caption(f'Submitted: `{sentence.lower()}` by `{datetime.now().strftime("%Y-%m-%d %H:%M:%S")}`') | |
| elif st.session_state['running_status'] == STATUS_ERROR: | |
| st.warning('The entity name is not in the sentence!') | |
| st.markdown(""" | |
| #### Corpus | |
| """) | |
| st.markdown(""" | |
| <small style="font-size: 19px; padding-bottom: 6px;"><b><code>Calling</code></b></small> | |
| means that the sentence contains the name and is telling to the entity.<br/> | |
| <small style="color: #afafaf"> | |
| <b><i>Examples:</i></b><br/> | |
| <b>-</b> Are you feeling good about it Jimmy?<br/> | |
| <b>-</b> Are you feeling good Jimmy?<br/> | |
| <b>-</b> Jimmy you are so cool! | |
| </small> | |
| """, unsafe_allow_html=True) | |
| st.markdown(""" | |
| <small style="font-size: 19px; padding-bottom: 6px;"><b><code>Mentioning</code></b></small> | |
| means that the sentence contains the name but is telling to other person.<br/> | |
| <small style="color: #afafaf"> | |
| <b><i>Examples:</i></b><br/> | |
| <b>-</b> Are you feeling good about Jimmy?<br/> | |
| <b>-</b> Have you heard about Jimmy?<br/> | |
| <b>-</b> Jimmy said that you are so cool! | |
| </small> | |
| """, unsafe_allow_html=True) | |
| st.markdown(""" | |
| #### Applications and Future Works | |
| """) | |
| st.markdown(""" | |
| Developers can apply it on their virtual bots or voice assistants to detect | |
| if the user is calling the bot or just mentioning the bot rather than detecting a fixed wake-up phrase. | |
| It will improve the human-computer interaction and usability. | |
| Additionally, Lingxi is going to expand the project into Simplified Chinese in the future, | |
| implement it into a Discord Bot, | |
| and deliver it into medium-sized channels to see if users feel better in communicating with bots in this way | |
| and if it works well in conversations in practice. | |
| If it works well, | |
| we may try to combine it with the speech-to-text to analyze the experience in the context of voice, | |
| which has a lot more complicated scenarios. | |
| """) | |
| with livedemo_col2: | |
| st.empty() | |
| with livedemo_col3: | |
| st.markdown(""" | |
| #### Get Started | |
| """) | |
| st.markdown(""" | |
| Hi! I'm the Entity Referring Classifier. | |
| Specify an entity name, and then type a sentence to get started! | |
| """) | |
| st.markdown(""" | |
| #### Members | |
| """) | |
| st.markdown(""" | |
| Lingxi Li, Li Xu, Zachary Polak, Tudor-Cristian Foca | |
| """) | |
| st.markdown(""" | |
| #### Background | |
| """) | |
| st.markdown(""" | |
| There are a lot of voice assistants and bots out there, | |
| but they all need a specific prefix to wake them like “hey siri” or “hey alexa”. | |
| At our real world, nobody is communicating with others with such prefix all the time. | |
| Everyone should be able to communicate in a comfortable way including with bots and virtual assistants. | |
| Our aim here is to get rid of the "wake phrase". | |
| """) |