File size: 2,192 Bytes
b58c818
1256a85
 
b58c818
ab5688d
 
9fec945
ab5688d
 
cd3df30
ab5688d
 
bd84a02
 
 
9fec945
0d3f45a
 
 
 
 
 
bd84a02
 
0d3f45a
e7f3263
bd84a02
 
87d90ac
ce7b644
 
 
 
870d09a
ce7b644
 
0d3f45a
 
 
ab5688d
b1dfc1e
ebd8105
b1dfc1e
22f90c0
d2f7d16
22f90c0
ebd8105
22f90c0
 
 
62eea5b
 
 
 
 
c50246f
22f90c0
 
ce7b644
c50246f
22f90c0
 
 
c50246f
22f90c0
 
 
 
4f75d26
ce7b644
4f75d26
2b90304
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
import transformers
import streamlit as st

from transformers import AutoTokenizer, AutoModelWithLMHead
from transformers import pipeline

sentiment_tokenizer = AutoTokenizer.from_pretrained("mrm8488/t5-base-finetuned-imdb-sentiment")
    
def load_text_gen_model():
    generator = pipeline("text-generation", model="gpt2-medium")
    return generator 
    
@st.cache
def get_sentiment_model():
    sentiment_model = AutoModelWithLMHead.from_pretrained("mrm8488/t5-base-finetuned-imdb-sentiment")
    return sentiment_model 

def get_summarizer_model():
    summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
    return summarizer

      
def get_sentiment(text):
    input_ids = sentiment_tokenizer .encode(text + '</s>', return_tensors='pt')
    output = sentiment_extractor.generate(input_ids=input_ids,max_length=2)
    dec = [sentiment_tokenizer.decode(ids) for ids in output]
    label = dec[0]
    return label
    

def get_qa_model():
    model_name = "deepset/roberta-base-squad2"

    qa_pipeline = pipeline('question-answering', model=model_name, tokenizer=model_name)
    return qa_pipeline
        
sentiment_extractor   = get_sentiment_model()
summarizer = get_summarizer_model()
answer_generator = get_qa_model()


st.header("Review Analyzer")

#action = st.sidebar.selectbox("Pick an Action", ["Analyse a Review","Generate an Article","Create an Image"])

#if action == "Analyse a Review":
st.subheader("Paste/write a review here..")
review = st.text_area("")

if review:
    
    start_sentiment_analysis = st.button("Get the Sentiment of the Review")
    start_summarizing = st.button("Summarize the review")
    start_topic_extraction = st.button("Find the key topic")

    if start_sentiment_analysis:
        sentiment = get_sentiment(review)
        st.write(sentiment)
        
    if start_summarizing:
        summary = summarizer(review, max_length=130, min_length=30, do_sample=False)
        st.write(summary)
    
    if start_topic_extraction:
        QA_input = {'question': 'what is the review about?',
                    'context': review}
        answer = answer_generator(QA_input)
        st.write(answer)