File size: 3,217 Bytes
6dba858
88055ae
 
f521496
6dba858
f521496
88055ae
cb68822
867f7a1
89c822b
867f7a1
88055ae
2ecd65e
88055ae
1cd7ed4
6dba858
cb68822
f92543a
 
d294c45
f4ca8de
d2ac7fa
 
 
 
 
 
 
 
 
 
 
f92543a
 
d2ac7fa
6b072bf
d2ac7fa
 
 
 
6b072bf
d2ac7fa
 
 
 
 
 
 
 
4e58636
6b072bf
9bc5e9e
b8a2f8c
08fe221
bd41a76
9600adb
 
 
c668192
9600adb
c668192
 
 
 
 
 
 
9600adb
9bc5e9e
4854d0b
d7857b3
68de716
88055ae
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import streamlit.components.v1 as components
from streamlit_player import st_player
from transformers import pipeline
from tabulate import tabulate
import streamlit as st



st.header("stream your emotions")
st.write("insert details ng huggignaspce")

def tester(text):
  classifier = pipeline("sentiment-analysis", model='bhadresh-savani/distilbert-base-uncased-emotion')
  results = classifier(text)
  #st.subheader(results[0]['label'])

#tester(emo)
  generator = st.button("Generate Song!")
  if (generator == True):
    st.subheader(results[0]['label'])
  
    if (results[0]['label']=="joy"): #songs for joy emotion
      with open('joyplaylist.txt') as f:
        contents = f.read()
      components.html(contents,width=560,height=325)
    
    elif (results[0]['label']=="fear"):
      with open('fearplaylist.txt') as f:
        contents = f.read()
      components.html(contents,width=560,height=325)
    
    elif (results[0]['label']=="anger"): #songs for anger emotion
      with open('angryplaylist.txt') as f:
        contents = f.read()
      components.html(contents,width=560,height=325)    

    elif (results[0]['label']=="sadness"): #songs for sadness emotion
      with open('sadplaylist.txt') as f:
        contents = f.read()
      components.html(contents,width=560,height=325)

    elif (results[0]['label']=="surprise"):
      st.write("gulat ka noh")

    elif (results[0]['label']=="love"):
      with open('loveplaylist.txt') as f:
        contents = f.read()
      components.html(contents,width=560,height=325)
 
emo = st.text_input("Enter a text/phrase/sentence. A corresponding song will be recommended based on its emotion.")


st.sidebar.subheader("Model Description")
st.sidebar.write("This application uses the DistilBERT model, a distilled version of BERT. The BERT framework uses a bidirectional transformer that allows it to learn the context of a word based on the left and right of the word. According to a paper by V. Sanh, et al., DistilBERT can \"reduce the size of a BERT model by 40%, while retaining 97% of its language understanding capabilities, and being 60% faster.\" This is why the DistilBERT model was used. For more information about the paper, please check out this [link](https://share.streamlit.io/mesmith027/streamlit_webapps/main/MC_pi/streamlit_app.py).")

st.sidebar.write("The specific DistilBERT model used for this is Bhadresh Savani's [distilbert-base-uncased-emotion] (https://huggingface.co/bhadresh-savani/distilbert-base-uncased-emotion). It is fine-tuned on the Emotion Dataset from Twitter, which can be found [here](https://huggingface.co/datasets/viewer/?dataset=emotion).")

st.sidebar.subheader("Disclaimer/Limitations")
st.sidebar.write("The model only outputs sadness, joy, love, anger, fear, and surprise. With that said, it does not completely encompass the emotions that a human being feels, and the application only suggests a playlist based on the aforementioned emotions.")

st.sidebar.subheader("Performance Benchmarks")

df = pd.DataFrame(
    np.random.randn(10, 5),
    columns=('col %d' % i for i in range(5)))

st.sidebar.table(df)


tester(emo)